2014-04-20 4 views
5

Versuchen Sie herauszufinden, was der beste Weg ist, einen Punkt auf einer Zahlenlinie in Python zu zeichnen. Im Wesentlichen versucht, unten etwas ähnlich das Bild zu machen:Grafikpunkt auf gerader Linie (Zahlenlinie) in Python

Point on a number line

Ich habe versucht, Matplotlib zu verwenden, um dies zu tun, aber kann nicht scheinen, um herauszufinden. Wer kennt ein Paket oder irgendwas da draußen, das ich benutzen kann?

+1

Was haben Sie versucht? Es sieht so aus, als ob das, was Sie wollen, mit mpl ziemlich einfach sein sollte. – tacaswell

+0

Können Sie mich auf ein Beispiel hinweisen? Ich habe versucht, die Y-Achse abzuschalten, aber ich bekomme immer noch ein quadratisches Diagramm. Und wenn ich versuche, vertikale Linien am Ende hinzuzufügen, überspannen sie immer noch das ganze Quadrat, – JDGD

Antwort

7

Ich weiß nicht von einem bestimmten Paket dafür, aber Sie könnten so etwas in Matplotlib mit hlines, vlines und plot tun.

import matplotlib.pyplot as plt 

# set up the figure 
fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.set_xlim(0,10) 
ax.set_ylim(0,10) 

# draw lines 
xmin = 1 
xmax = 9 
y = 5 
height = 1 

plt.hlines(y, xmin, xmax) 
plt.vlines(xmin, y - height/2., y + height/2.) 
plt.vlines(xmax, y - height/2., y + height/2.) 

# draw a point on the line 
px = 4 
plt.plot(px,y, 'ro', ms = 15, mfc = 'r') 

# add an arrow 
plt.annotate('Price five days ago', (px,y), xytext = (px - 1, y + 1), 
       arrowprops=dict(facecolor='black', shrink=0.1), 
       horizontalalignment='right') 

# add numbers 
plt.text(xmin - 0.1, y, '80', horizontalalignment='right') 
plt.text(xmax + 0.1, y, '115', horizontalalignment='left') 

plt.axis('off') 
plt.show() 

enter image description here

+0

Die Linie in der Mitte ist genau das, wonach ich suche, aber gibt es irgendeinen Weg, wie ich alles um mich herum loswerden kann? Ich versuche, dies zu erstellen, so dass ich in ein Skript implementieren kann, das die Bilder automatisch speichert und sie dann auf einer Webseite anzeigt. – JDGD

+0

Sie können plt.axis ('off') verwenden, um die Achse auszuschalten. Siehe meine Bearbeitung. – Molly