Diagramm mit weniger Markern als Datenpunkten (oder eine bessere Möglichkeit, CDFs zu zeichnen?) [Matplotlib oder allgemeine Handlung] Hilfe

StackOverflow https://stackoverflow.com/questions/2040306

Frage

Ich zeichne kumulative Verteilungsfunktionen mit einer großen Anzahl von Datenpunkten auf. Ich plane ein paar Zeilen auf demselben Grundstück, die mit Markierungen identifiziert werden, wie sie in Schwarzweiß gedruckt werden. Was ich möchte, sind Marker, die gleichmäßig in der X-Dimension verteilt sind. Was ich bekomme, ist ein Marker pro Datenpunkt (und angesichts der Anzahl der Punkte überschneiden sich alle)

Ich bin mir nicht sicher, ob es mein Verständnis dafür ist, wie man gut zeichnet oder nur ein mangelnder Verständnis von Matplotlib. Ich kann keine Einstellung "Markerfrequenz" finden.

Eine einfache Lösung für eine Zeile wäre, jeden N'th -Wert aus der Zeile zu nehmen und diese als separate Linie mit Linestyle = '' zu verwenden, aber ich möchte, dass die Marker vertikal ausgerichtet sind und die verschiedenen X -Arrays unterschiedlich haben Längen.

# in reality, many thousands of values
x_example = [ 567, 460, 66, 1034, 275, 26, 628, 99, 287, 157, 705, 421, 1093, \ 
     139, 204, 14, 240, 179, 94, 139, 645, 670, 47, 520, 891, 450, 56, 964,   \
     1728, 99, 277, 356, 1628, 745, 364, 88, 112, 810, 816, 523, 401, 89,     \ 
     278, 917, 370, 53, 39, 90, 853, 356 ] 
x = sort(x_example)
y = linspace(0,1,len(x))

ax = subplot(1,1,1)
plots[w] = ax.plot(x,y, marker='o')
War es hilfreich?

Lösung

Du kannst tun plot(x,y,marker='o',markevery=5) Um jeden fünften Punkt zu markieren, aber ich glaube nicht, dass es in eingebaute Unterstützung für das Setzen von Markierungen in gleichmäßigen Abständen gibt. Sie können sich für die X -Standorte entscheiden, an denen Sie die Markierungen wünschen, EG verwenden numpy.searchsorted Um herauszufinden, welche Datenpunkte die Standorte fallen, und dann zwischen den benachbarten Punkten interpolieren, um die Y -Koordinaten zu finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top