إنشاء رسم بياني مع مجموعات بيانات متعددة (مجموعات متعددة من مجموعات متعددة) XIS

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

سؤال

أنا أبحث عن وسيلة لتوليد رسم بياني مع مجموعات متعددة من البيانات على المحور X، كل منها مقسمة إلى مجموعات متعددة من مجموعات متعددة. أنا أساسا أريد أن تأخذ هذا الرسم البياني ووضع الرسوم البيانية المماثلة جنبا إلى جنب معها. أحاول رسم بياني إنشاء رسم بياني للمدة (محور ص) من نفس الوظائف (0-3) مع تكوينات مختلفة (0-1) على خوادم متعددة (كل مجموعة مع نفس الوظائف 8). نأمل أن يوضح المخطط التالي ما أحاول إنجازه (يتم فصل المجموعات الأصغر بالأنابيب، مجموعات أكبر بواسطة أنابيب مزدوجة):

|| 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 ||. || الخادم 1 ||. خادم 2 ||. الخادم 3 ||.

هل هذا ممكن مع وحدة Perl GD :: Graph أو وحدة Python Matplotlib؟ لا يمكنني العثور على أمثلة أو وثائق حول هذا الموضوع أيضا.

هل كانت مفيدة؟

المحلول

إليك بعض رمز بيثون الذي سينتج ما تبحث عنه. (يستخدم المثال 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

نصائح أخرى

في الآونة الأخيرة، رأيت رسم بياني أعتقد أن ما تريد استخدامهبروتوفيس

ليس لدي أي خبرة في البرنامج، لكن الرسم البياني كان مريرا وأعتقد أنه من شأنه أن أعطيك يريد أنك تريد.

mathgl. يمكن أن تفعل ذلك بسهولة ولديها واجهة بيثون أيضا. يرى هذه للأمثلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top