2016-10-11 2 views
2

Ich habe ein Grundstück mit einer einfachen Linie. Im Moment stelle ich yticks als unsichtbar ein. Hier enter image description hereWie man Yticks auf dem Diagramm zeigt (nicht auf der y-Achse). Zeige Yticks in der Nähe von Punkten

ist der Code für das Diagramm:

import matplotlib.pyplot as plt 
x = [1, 2, 3, 4, 5] 
y = [1, 1.5, 2, 2.5, 3] 

fig, ax = plt.subplots(figsize=(15,10)) 
plt.plot(x, y, 'ko-') 

plt.xlabel('X', fontsize=15) 
plt.ylabel('Y', fontsize=15) 
plt.xticks(x, fontsize=13) 
plt.yticks(y, visible=False) 

plt.margins(0.1, 0.1) 
plt.title('Graph', color='black', fontsize=17) 
ax.axis('scaled') 
ax.grid() 
plt.show() 

Ich brauche/print zu zeigen yticks rechts in der Grafik selbst (nicht auf der linken Seite). Also, yticks sind neben Datenpunkten.

gewünschte Ausgabe: enter image description here


Wie es mit Matplotlib zu tun?

Antwort

2

Sie können plt.text() verwenden, um Text auf eine Achse zu kommentieren. Indem Sie über Ihre x, y Punkte iterieren, können Sie eine Markierung an jeder Markierung platzieren. Zum Beispiel:

import matplotlib.pyplot as plt 
x = [1, 2, 3, 4, 5] 
y = [1, 1.5, 2, 2.5, 3] 

fig, ax = plt.subplots(figsize=(15,10)) 
plt.plot(x, y, 'ko-') 

plt.xlabel('X', fontsize=15) 
plt.ylabel('Y', fontsize=15) 
plt.xticks(x, fontsize=13) 
plt.yticks(y, visible=False) 

offset = 0.05 
for xp, yp in zip(x,y): 
    label = "%s" % yp 
    plt.text(xp-offset, yp+offset, label, fontsize=12, horizontalalignment='right') 

plt.margins(0.1, 0.1) 
plt.title('Graph', color='black', fontsize=17) 
ax.axis('scaled') 
ax.grid() 
plt.show() 

gibt die folgende Abbildung:

enter image description here

Verwandte Themen