2009-08-07 79 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

我有一個程序沒有任何經驗的東西,而圖形是啓發,我想會給你想要的。