Generieren eines Diagramms mit mehreren (Sätzen mehrerer Sätze mehrerer) X-Achsen-Datensätze

StackOverflow https://stackoverflow.com/questions/1242270

Frage

Ich suche nach einer Möglichkeit, ein Diagramm mit mehreren Datensätzen auf der X-Achse zu generieren, von denen jedes in mehrere Sätze mehrerer Sätze unterteilt ist. Ich möchte im Grunde nehmen Diese Grafik und platzieren Sie ähnliche Grafiken nebeneinander. Ich versuche, das Erstellen eines Diagramms der Dauer (y-Achse) derselben Jobs (0-3) mit unterschiedlichen Konfigurationen (0-1) auf mehreren Servern (jede Gruppe mit denselben 8 Jobs) zu gratschen. Hoffentlich wird das folgende Diagramm veranschaulichen, was ich zu erreichen versuche (kleinere Gruppierungen werden durch Rohre, größere Gruppierungen durch Doppelrohre getrennt):

|| 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              ||

Ist dies mit dem GD :: Graph Perl -Modul oder dem Matplotlib -Python -Modul möglich? Ich kann keine Beispiele oder Dokumentation zu diesem Thema finden.

War es hilfreich?

Lösung

Hier ist ein Python -Code, der das produziert, wonach Sie suchen. (Das Beispiel verwendet 3 Konfigurationen anstelle von 2, um sicherzustellen, dass der Code ziemlich allgemein war.)

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()

Dieser Code ist wahrscheinlich ziemlich transparent. Der ungerade Begriff (iconfig+2.)/(nconfigs+1) ist nur die Farben für die verschiedenen Konfigurationen zu dimmen, aber sie hell genug zu halten, damit die Farben unterschieden werden können.

Die Ausgabe sieht aus:

alt text

Andere Tipps

Vor kurzem habe ich ein Diagramm gesehen, das meiner Meinung nach das tut, was Sie verwenden möchtenProtovis

Ich habe keine Erfahrung mit dem Programm, aber die Grafik war aufschlussreich und ich denke, würde Ihnen wollen, dass Sie es wollen.

Mathgl Kann es leicht tun und es hat auch eine Python -Schnittstelle. Sehen Dies zum Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top