2009-08-07 78 views
3

我正在寻找一种方法来生成一个包含X轴上多组数据的图形,每个图形都被分成多个集合多套。我基本上想要采取this graph并与它并排放置类似的图。我试图在多个服务器(每个组具有相同的8个作业)上使用不同配置(0-1)在相同作业(0-3)的持续时间(Y轴)上绘制图形。希望下面的图表将说明什么,我试图完成的(较小的分组通过管道双管分离,大集团):生成具有多个(多组多个)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代码会产生你在找的东西。 (该示例使用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)只是为不同配置调暗颜色,但保持足够亮度以便可以区分颜色。

输出看起来像:

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

+0

谢谢。现在,我该如何生成_X组的Y组吧? – titaniumdecoy 2009-08-07 06:36:16

+0

我已经编辑了我的答案(包括下面的代码和单词)来解决X组的Y条,或者我误解了“X组Y条”的含义?该图显示“5组7条”,对吗? – tom10 2009-08-07 14:57:32

+1

你说得对,也许我错误地解决了我的问题。我真正在寻找的是一种制作X组Z组棒图的方法。我将相应地编辑我的问题。 – titaniumdecoy 2009-08-07 16:21:26

0

最近,我看到了,我觉得图并希望使用 protovis

我有一个程序没有任何经验的东西,而图形是启发,我想会给你想要的。