我正在寻找一种在X轴上生成具有多组数据的图形的方法,每个图都分为多个集合。我基本上想接受 此图 并与之并排放置相似的图。我试图在多个服务器上(每组具有相同的8个作业)上绘制同一作业(0-3)的持续时间(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模块是否可以?我找不到有关此主题的示例或文档。

有帮助吗?

解决方案

这是一些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

其他提示

最近,我看到了一个我认为您想使用的图表Protovis

我没有该程序的经验,但是图表很有启发性,我认为会给您想要您想要的。

Mathgl 可以轻松执行此操作,并且具有Python接口。看 这个 举些例子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top