2012-01-12 15 views
3

私はノードが階層的に定義されたネットワークを持っています(UN SITC coding経由)。私のアプリケーションでは、各ノードには階層的特異性が増加する4つの識別数字があります(たとえば、製品7431を参照)。私が定義したネットワークは明らかな階層構造ではありません。私がしようとしているのは、ノードを階層的に色付けすることですが、ネットワーク計算に基づいてノードをレイアウトし、どの程度まで一致させるかを確認します。カラーノードへの階層的アルゴリズム

一般に、私はN個のカラーパレットを生成する方法を探しています.N個のカラーパレットは、可能な限り視覚的に区別されます(Nが大きくなるにつれて効果的ではありません)。私は望ましい階層的な深さに達します。

具体的には、最初の桁に10の基本色を選択し、2番目の桁が取ることができる可能な値の数であり、3番目の桁についてもKが可能な数であるK < =すべてのノードがその階層的な情報に従って色づけされるまで、4桁目になります。グリーンは1つのタイプであり、その中に緑の特定のシェードが視覚的な類似性に対応するノードの特定のファミリーを定義する。

私が実装したいと思うカラープロパティは、「アナタージュ」のようです。単純にHSV/HSLスキームで色相パラメータを定期的に分割してこれを達成するか、より良い方法がありますか?

私はPythonで実装していますが、どのアルゴリズムも基本的に言語に依存しません。

+0

撮影しているものを示す小さな視覚的な例を投稿することは可能ですか? – Richard

答えて

0

私はさまざまな画像のスペクトル出力を比較して類似性に基づいて順序を決定する、同じような問題(おそらくあなたがやっていることの逆数)に取り組みました。

色のRGBキューブを使って何週間もしばらくして、私はあきらめてHSVに移動しました。私は色を定義し、それに基づいて置き換えて、2種類の黄色を持たない色相を特定します - むしろ、斧を始動してkの倍数を加えて、次のようなものにします:

x is red 
x+k is yellow 
x+2k is green 
... so forth 

この中で、私はあなたに利用可能な色の数を増やすために、「値」と「彩度」を少しずつ並べ替えます。

システム間の変換が終了した場合、私はcolorsysを使用しましたが問題はありません。