Balkendiagramm: Balken verschwinden

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Nait
User
Beiträge: 13
Registriert: Dienstag 26. April 2011, 10:53

Hallo an alle im Python-Forum,

ich bin neu hier und programmiere auch erst seit einem halben Jahr mit Python auf der Arbeit.
Bisher konnte dieses Forum alle meine Fragen beantworten, leider bin ich jetzt an ein Problem gestoßen welches bisher hier noch nicht behandelt wurde(oder ich den zugehörigen Post nicht gefunden habe).

Mein Problem lautet wie folgt:
Ich bekomme verschiedene Datensätze in einer GUI (erstellt mit QT) und möchte ein Balkendiagramm erstellen. In dem Balkendiagramm wird die x-Achse mit „CH1“…“CH6“ beschriftet.
Für jeden „CH..“ gibt es 2 Balken. Der Erste soll ein Gelber sein und der Zweite ein Roter.
In meinem Diagramm wird der gelbe Balken jedoch nicht angezeigt. Kommentiere ich die Programmzeilen welche den Roten initialisieren aus, wird der Gelbe wiederum angezeigt.

Wenn ich die Balken jetzt beschrifte(siehe Code)

Code: Alles auswählen

for rect in rects:
            height = rect.get_height()
            self.plotKanalauswertung.text(rect.get_x()+rect.get_width()/2, 0.5*height, '%d'%int(height),
                                ha='center', va='bottom',fontsize = '8')
Stehen in den Balken die richtigen Zahlen und diese auch auf der richtigen Höhe.

Vielleicht weiß einer von euch ja woran das nicht erscheinen des gelben Balken liegen kann.
Danke schon mal im Voraus.

Hier mal noch Teile des Quellcodes:

Code: Alles auswählen

        from PyQt4 import QtCore, QtGui
        from GUIStatistik import Ui_Statistik
        import numpy as np
        import sys
        from pylab import *

        self.uiStat= Ui_Statistik()
        self.uiStat.setupUi(self)
        self.plotKanalauswertung = self.uiStat.mplwidgetKanalauswertung.axes.figure.add_subplot(111)
        self.uiStat.mplwidgetKanalauswertung.figure.set_facecolor("white")
        self.ind2= np.arange(6)
        width = 0.35
        wert = [self.ch1SOK,self.ch2SOK,self.ch3SOK,self.ch4SOK,self.ch5SOK,self.ch6SOK]
        rects = self.plotKanalauswertung.bar(self.ind2, wert,width,color = 'yellow')

        wert = [self.ch1NOK,self.ch2NOK,self.ch3NOK,self.ch4NOK,self.ch5NOK,self.ch6NOK]
        rects2 = self.plotKanalauswertung.bar(self.ind2+width, wert,width,color = 'red')

        self.plotKanalauswertung.set_xticks(self.ind2+width)
        self.plotKanalauswertung.set_xticklabels(('CH1','CH2','CH3','CH4','CH5','CH6'),fontsize = '8')
        self.plotKanalauswertung.set_ylabel("Ausfaelle",fontsize = '8')
        self.plotKanalauswertung.set_title("Auswertung der einzelnen Kanaele",fontsize='9')

        for rect in rects:
            height = rect.get_height()
            self.plotKanalauswertung.text(rect.get_x()+rect.get_width()/2, 0.5*height, '%d'%int(height),
                                ha='center', va='bottom',fontsize = '8')

        for rect in rects2:
            height = rect.get_height()
            self.plotKanalauswertung.text(rect.get_x()+rect.get_width()/2, 0.5*height, '%d'%int(height),
                                ha='center', va='bottom',fontsize = '8')

        self.uiStat.mplwidgetKanalauswertung.draw()
Rekrul
User
Beiträge: 78
Registriert: Dienstag 7. Dezember 2010, 16:23

Probier mal am Anfang self.plotKanalauswertung.hold(True).
Nait
User
Beiträge: 13
Registriert: Dienstag 26. April 2011, 10:53

Ein großes Dankeschön,

funktioniert so wie ich es mir vorstelle.

MFG Nait
Antworten