2017-12-15 4 views
2

Ich, ich arbeite in Python und fand ein paar Lösungen, dies zu tun. Aber es erfordert das Erstellen jedes einzelnen Teilplots. Aber da es einen Parameter gibt, wo Sie subplot=True tun könnten, frage ich mich, gibt es eine Möglichkeit, es in einer Zeile Code zu tun ... viel, wie Sie sharey=True sagen könnten, können Sie es machen eine horizontale Konstante "teilen"?plot horizontale Linie in allen Subplots

Ich habe damit herumgespielt. Zuerst erschien es nur auf dem letzten Diagramm, aber jetzt zeigt es überhaupt nicht.

import matplotlib.pyplot as plt 

line_up_points.plot(subplots=True, layout=(3, 3),sharey=True, figsize=(18, 12)) 
plt.legend(loc='best') 
plt.axhline(y=125.08, color='r') 

Hier ist, was es zeigt:

enter image description here

Aber ich möchte auf jedem dieser Nebenhandlungen bei y eine horizontale Linie haben = 125,08

Jede Idee, ohne einzeln 7 verschiedene Schaffung Grafiken?

Antwort

2

Wenn ich mich nicht irre, dann sollten Sie eine Matrix von Achsenobjekten zurückbekommen.

Dies sollte den Trick:

axes = line_up_points.plot(subplots=True, layout=(3, 3),sharey=True, figsize=(18, 12)) 

for c in axes: 
    for ax in c: 
     ax.axhline(y=125.08, color='r') 

Hier ist ein vollständiges Beispiel:

%matplotlib inline # For Jupyter Notebooks 
import numpy as np 
import pandas as pd 

df = pd.DataFrame(np.random.rand(10, 7)) 

axes = df.plot(subplots=True, layout=(3, 3), figsize=(16,9)) 

for c in axes: 
    for ax in c: 
     ax.axhline(y=0.5, color='r') 
+1

Mißachtung meinen vorherigen Kommentar. Ich habe den kleinen Schnitt gefangen. arbeitete perfekt – chitown88

+0

@ chitown88 ja das war mein Fehler. Es gibt nur die Achsen, nicht aber das Figurenobjekt zurück. Ich habe meine Antwort aktualisiert. – displayname