문제

x 축에 여러 세트의 데이터 세트가있는 그래프를 생성하는 방법을 찾고 있으며, 각각은 여러 세트의 여러 세트로 나뉩니다. 나는 기본적으로 가져 가고 싶다 이 그래프 그리고 비슷한 그래프를 나란히 놓습니다. 여러 서버 (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 모듈에서 가능합니까? 이 주제에 대한 예제 나 문서를 찾을 수 없습니다.

도움이 되었습니까?

해결책

다음은 찾고있는 것을 생성 할 파이썬 코드입니다. (이 예제는 코드가 상당히 일반적인 지 확인하기 위해 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) 다른 구성의 색상을 어둡게하는 것이지만 색상을 구별 할 수 있도록 충분히 밝게 유지합니다.

출력은 다음과 같습니다.

alt text

다른 팁

최근에, 나는 당신이 사용하고 싶은 일을 생각하는 그래프를 보았습니다.Protovis

나는 프로그램에 대한 경험이 없지만 그래프는 깨달았으며 당신이 원하는 것을 원한다고 생각합니다.

수학 쉽게 할 수 있고 파이썬 인터페이스도 있습니다. 보다 이것 예를 들어.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top