複数の(複数の複数のセットのセット)x軸データセットでグラフを生成する

StackOverflow https://stackoverflow.com/questions/1242270

質問

X軸に複数のデータセットを備えたグラフを生成する方法を探しています。それぞれが複数のセットの複数のセットに分割されています。私は基本的に服用したいです このグラフ 同様のグラフを並べて配置します。同じジョブ(0-3)の持続時間(y軸)のグラフのビルドを、複数のサーバー(同じ8ジョブを持つ各グループ)で異なる構成(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 ||
|| 0   | 1   | 2   | 3   || 0   | 1   | 2   | 3   || 0   | 1   | 2   | 3   ||
|| Server 1              || Server 2              || Server 3              ||

これは、GD :: Graph PerlモジュールまたはMatplotlib Pythonモジュールのいずれかで可能ですか?このテーマに関する例やドキュメントも見つかりません。

役に立ちましたか?

解決

これがあなたが探しているものを生成するいくつかの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

他のヒント

最近、私はあなたが使用したいことをしていると思うグラフを見ましたプロトビス

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

Mathgl 簡単に行うことができ、Pythonインターフェイスもあります。見る これ 例えば。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top