2009-08-07 11 views
3

を設定します複数のセットの私は基本的にthis graphと同様のグラフを並べて配置したいと思います。私は複数のサーバー(同じ8つのジョブを持つ各グループ)上の異なる構成(0-1)を持つ同じジョブ(0-3)の持続時間(Y軸)のグラフを作成しようとしています。うまくいけば、次の図は、私は(小さいグループは、二重のパイプにより、パイプによって、より大きなグループに分離されている)を達成しようとしているものを説明します:複数持つグラフを生成するX軸データ(複数の複数のセットのセット)は、私は複数のセットに分割されそれぞれがX軸上データの複数のセットを持つグラフを生成する方法を探してい

|| 0 1 | 0 1 | 0 1 | 0 1 || 0 1 | 0 1 | 0 1 | 0 1 || 0 1 | 0 1 | 0 1 | 0 1 || 
|| 0 | 1 | 2 | 3 || 0 | 1 | 2 | 3 || 0 | 1 | 2 | 3 || 
|| Server 1    || Server 2    || Server 3    ||

はGD ::グラフPerlモジュールまたはmatplotlibのはPythonのいずれかで、このことが可能ですモジュール?私は、この件に関する事例や文書を見つけることはできません。

答えて

6

ここにあなたが探しているものを生み出すいくつかのPythonコードです。 (例では、コードはかなり一般的だったことを確認するために、むしろ2より3つの設定を使用しています。)

import matplotlib.pyplot as plt 
import random 

nconfigs, njobs, nservers = 3, 4, 4 

width = .9/(nconfigs*njobs) 
job_colors = [(0,0,1), (0,1,0), (1,0,0), (1,0,1)] 

def dim(color, fraction=.5): 
    return tuple([fraction*channel for channel in color]) 

plt.figure() 
x = 0 
for iserver in range(nservers): 
    for ijob in range(njobs): 
     for iconfig in range(nconfigs): 
      color = dim(job_colors[ijob], (iconfig+2.)/(nconfigs+1)) 
      plt.bar(x, 1.+random.random(), width, color=color) 
      x += width 
    x += .1 

plt.show() 

このコードはおそらくかなり透明です。奇妙な言葉(iconfig+2.)/(nconfigs+1)は色々な構成の色を暗くするだけですが、色を区別できるように明るくしておいてください。

出力は次のようになります。

alt text http://i28.tinypic.com/dgrnzk.png

+0

ありがとうございました。さて、どのようにして_Xグループのバーグループを生成するのですか? – titaniumdecoy

+0

私はYバーのXグループを扱うために自分の答え(その下のコードと単語の両方)を編集しましたか、「YバーのXグループ」の意味を誤解していますか?図は「7つのバーの5つのグループ」を示しています。 – tom10

+1

あなたは正しいでしょう、おそらく私は問題を誤って言いました。私が本当に探しているのは、YグループのXグループの棒グラフのZグループのグラフを作成する方法です。私はそれに応じて私の質問を編集します。 – titaniumdecoy

0

最近、私は私が思うのグラフは、あなたが protovis

私はプログラム経験がないが、グラフだったを使用して何をしたいん見ました啓発と私はあなたが欲しいと思うと思います。

0

MathGLは簡単にそれを行うことができますし、それがあまりにもPythonインタフェースを持っています。例については、thisを参照してください。

関連する問題