我正在寻找一种方法来生成X轴上具有多组数据的图形,每个图形被分成多组多组。我基本上想要this graph并将相似的图表并排放置。我试图在多个服务器(每个组具有相同的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 || || Server 1 || Server 2 || Server 3 ||
这是否可以使用GD :: Graph Perl模块或matplotlib Python模块?我找不到关于这个主题的例子或文档。
答案 0 :(得分:6)
这里有一些Python代码可以产生你想要的东西。 (该示例使用3个配置而不是2个来确保代码非常通用。)
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)
只是调暗不同配置的颜色,但要保持它们足够亮,以便区分颜色。
输出如下:
答案 1 :(得分:0)
最近,我看到了一个我认为你想要使用的图表 protovis
我没有使用该程序的经验,但图表很有启发性,我认为会让你想要你想要的。
答案 2 :(得分:0)