3

X軸に複数のデータセットがあり、それぞれが複数のセットの複数のセットに分割されているグラフを生成する方法を探しています。基本的にこのグラフを取り、同様のグラフを並べて配置したいと思います。複数のサーバー(同じ8つのジョブを持つ各グループ)で異なる構成(0-1)の同じジョブ(0-3)の期間(Y軸)のグラフを作成しようとしています。次の図が、私が達成しようとしていることを示していることを願っています(小さいグループはパイプで区切られ、大きいグループは二重パイプで区切られています)。

|| 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 ||
|| サーバー1|| サーバー2|| サーバー3||

これは、GD :: GraphPerlモジュールまたはmatplotlibPythonモジュールのいずれかで可能ですか?どちらの場合も、このテーマに関する例やドキュメントが見つかりません。

4

3 に答える 3

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)は、さまざまな構成の色を暗くすることですが、色を区別できるように十分に明るく保ちます。

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

代替テキスト

于 2009-08-07T03:26:27.017 に答える
0

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

于 2011-01-25T20:01:42.413 に答える
0

最近、 protovisを使用して希望どおりの結果が得られると思われるグラフを見ました

私はプログラムの経験はありませんが、グラフは啓発的であり、あなたが望むものを与えると思います.

于 2009-08-07T16:42:16.427 に答える