ich habe folgendes Balkendiagramm programmiert mithilfe von matplotlib.pyplot
Den Code dazu gibt es hier:
Code: Alles auswählen
def GainLossHourlyBars(self, Losses, Gains):
width=0.8
left=0.5
leftg=0.5
FarbenL=np.array(["LightCoral", "Yellow", "PeachPuff", "Thistle",
"CornflowerBlue", "PaleGreen", "Cornsilk","YellowGreen",
"MediumSpringGreen"]) # Farben der bars fuer die Losses
FarbenG=np.array(["DarkRed", "DarkOrange", "DarkKhaki", "DarkViolet",
"DarkSlateBlue", "DarkGreen", "DarkCyan", "DarkBlue",
"SaddleBrown", "Chocolate"]) # Farben der bars fuer die Gains
LossLabels=np.array(["Neighbour", "Children", "Corridor", "Bedroom",
"OutsideWall", "Ceiling", "Floor", "Infiltration", "Ventilation"]) # Eintraege der Legende Losses
GainLabels=np.array(["Heating", "GainNeighbour", "GainChildren", "GainCorridor",
"GainBedroom", "GainOutsideWall", "GainCeiling", "GainFloor", "GainInfiltration", "GainVentilation"]) # Eintraege der Legende Gains
for DayL in range(1, len(Losses[0,1,:])):
boden=0.
for Value in range(len(Losses[:,0,0])):
height=Losses[Value,1,DayL]-Losses[Value,1,(DayL-1)]
plt.bar(left, height, width, bottom=boden, color=FarbenL[Value])
boden=boden+height
left=left+1
for DayG in range(1, len(Gains[0,1,:])):
boden=0.
for Value in range(len(Gains[:,0,0])):
heightG=Gains[Value,1,DayG]-Gains[Value,1,(DayG-1)]
plt.bar(leftg, heightG, width, bottom=boden, color=FarbenG[Value])
boden=boden+heightG
leftg=leftg+1
# plt.legend()
plt.show()
Mein Problem liegt nun darin, eine ordentliche Legende zu bilden. Wenn ich einfach
Code: Alles auswählen
plt.bar(leftg, heightG, width, bottom=boden, color=FarbenG[Value], label=GainLabels[Value])
Hat jemand eine Idee, wie ich das anstelle?
Danke
Gruß