複数の(複数の複数のセットのセット)x軸データセットでグラフを生成する
-
12-09-2019 - |
質問
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)
さまざまな構成の色を暗くするだけですが、色を区別できるように十分に明るく保ちます。
出力は次のように見えます:
所属していません StackOverflow