Erstellen einer Legende in Matplotlib
Verfasst: Mittwoch 15. September 2021, 17:29
Hallo, beim erstellen eines Plots, hab ich folgendes Problem:
Ich kann zwar die Graphen, die ich habe labeln. Allerdings, wenn zwei Graphen dasselbe Label zugewiesen bekommen haben, erkennt das Programm nicht, dass es sich um dasselbe label handelt, und fügt in die Legende das selbe Label nochmal hinzu.
Bezogen auf mein Beispiel enthält die Legende zwei Labels die beide "Fahrrad" heißen.
Der Code hierfür sieht wie folgt aus:
-------------------------------------------------------------------
import matplotlib.pyplot as plt
#X und Y Werte, alle als String deklariert.
x_werte=["1","3","5","7","9","Art"]
in_data=[["1","5","10","12","12","Auto"],
["1","4","5","10","21","Fahrrad"],
["2","10","20","30","40","Roller"],
["1","5","5","7","20","Fahrrad"] ]
del(x_werte[-1])
i=0
while i<len(in_data):
y_werte=[]
for j in range(0,len(in_data[0])-1,1):
wert=float(in_data[j])
y_werte.append(wert)
label_string=in_data[len(in_data[0])-1]
label_string=str(label_string)
plt.plot(x_werte,y_werte,label=label_string)
i+=1
plt.legend()
plt.show()
-------------------------------------------------------------------
Ich kann zwar die Graphen, die ich habe labeln. Allerdings, wenn zwei Graphen dasselbe Label zugewiesen bekommen haben, erkennt das Programm nicht, dass es sich um dasselbe label handelt, und fügt in die Legende das selbe Label nochmal hinzu.
Bezogen auf mein Beispiel enthält die Legende zwei Labels die beide "Fahrrad" heißen.
Der Code hierfür sieht wie folgt aus:
-------------------------------------------------------------------
import matplotlib.pyplot as plt
#X und Y Werte, alle als String deklariert.
x_werte=["1","3","5","7","9","Art"]
in_data=[["1","5","10","12","12","Auto"],
["1","4","5","10","21","Fahrrad"],
["2","10","20","30","40","Roller"],
["1","5","5","7","20","Fahrrad"] ]
del(x_werte[-1])
i=0
while i<len(in_data):
y_werte=[]
for j in range(0,len(in_data[0])-1,1):
wert=float(in_data[j])
y_werte.append(wert)
label_string=in_data[len(in_data[0])-1]
label_string=str(label_string)
plt.plot(x_werte,y_werte,label=label_string)
i+=1
plt.legend()
plt.show()
-------------------------------------------------------------------