Legen Sie eine Lücke / Pause in ein Liniendiagramm

9

Ich habe einen Datensatz mit effektiv "kontinuierlichen" Sensormesswerten mit gelegentlicher Lücke.

Es gibt jedoch mehrere Perioden, in denen keine Daten aufgezeichnet wurden. Diese Lücken sind deutlich länger als die Probezeit.

Standardmäßig verbindet pyplot jeden Datenpunkt mit dem nächsten (wenn ich einen Linienstil eingestellt habe), aber ich denke, dass dies etwas irreführend ist, wenn es die beiden Datenpunkte auf beiden Seiten einer langen Lücke verbindet.

Ich würde es vorziehen, dort einfach keine Linie zu haben; das heißt, ich möchte, dass die Linie anhält und nach der Lücke wieder beginnt.

Ich habe versucht, ein Element in diesen Lückenabschnitten mit dem y-Wert None hinzuzufügen, scheint aber die Linie zurück zu einem früheren Teil des Plots zu senden (obwohl diese Linien seltsamerweise nicht bei allen Zoomstufen erscheinen ).

Die andere Option, an die ich gedacht habe, ist, jedes Stück mit einem separaten Aufruf von plot zu plotten, aber das wäre ein bisschen hässlich und umständlich.

Gibt es einen eleganteren Weg, dies zu erreichen?

Bearbeiten: Unten ist ein minimales funktionierendes Beispiel, das das Verhalten demonstriert. Die erste Handlung ist die Verbindungslinie, die ich vermeiden möchte. Das zweite Diagramm zeigt, dass das Hinzufügen eines None -Wertes zu funktionieren scheint. Wenn Sie jedoch die Ansicht des Diagramms schwenken, erhalten Sie, was in der dritten Abbildung gezeigt wird, eine Linie, die zu einem früheren Teil des Diagramms springt.

%Vor%

Plot 3, die "seltsame Sprunglinie"

    
Alex 27.03.2013, 05:32
quelle

1 Antwort

11

Maskierte Arrays funktionieren dafür gut. Sie müssen nur den ersten Punkt maskieren, den Sie nicht verbinden möchten:

%Vor%

Zumindest auf meinem System (OSX, Python 2.7, MPL 1.1.0) habe ich keine Probleme mit Panning, etc.

    
tom10 27.03.2013 15:53
quelle

Tags und Links