Ich spiele zum ersten Mal mit Seaborn und versuche verschiedene Spalten eines Pandas-Datenrahmens auf verschiedenen Plots mit Matplotlib-Subplots zu plotten. Der folgende einfache Code erzeugt die erwartete Zahl, aber der letzte Plot hat keinen richtigen y-Bereich (er scheint mit dem gesamten Bereich der Werte im Datenrahmen verbunden zu sein). Hat jemand eine Idee, warum das passiert und wie man das verhindert? Vielen Dank.falscher y-Achsenbereich mit Matplotlib-Subplots und Seaborn
import matplotlib.pyplot as plt
import numpy as np
import pandas as pds
import seaborn as sns
X = np.arange(0,10)
df = pds.DataFrame({'X': X, 'Y1': 4*X, 'Y2': X/2., 'Y3': X+3, 'Y4': X-7})
fig, axes = plt.subplots(ncols=2, nrows=2)
ax1, ax2, ax3, ax4 = axes.ravel()
sns.set(style="ticks")
sns.despine(fig=fig)
sns.regplot(x='X', y='Y1', data=df, fit_reg=False, ax=ax1)
sns.regplot(x='X', y='Y2', data=df, fit_reg=False, ax=ax2)
sns.regplot(x='X', y='Y3', data=df, fit_reg=False, ax=ax3)
sns.regplot(x='X', y='Y4', data=df, fit_reg=False, ax=ax4)
plt.show()
Update: Ich änderte den obigen Code mit:
fig, axes = plt.subplots(ncols=2, nrows=3)
ax1, ax2, ax3, ax4, ax5, ax6 = axes.ravel()
Wenn ich Daten plotten auf jeder Achse, aber der letzte, den ich bekommen, was ich suche: Natürlich will ich die leeren Frames nicht. Alle Plots präsentieren die Daten mit einem ähnlichen visuellen Aspekt. Wenn Daten auf der letzten Achse geplottet werden, erhält sie einen y-Bereich, der wie im ersten Beispiel zu groß ist. Nur die letzte Achse scheint dieses Problem zu haben. Irgendeine Ahnung?
Dank für die reproduzierbare Beispiel. Es würde helfen, wenn Sie den erwarteten y-Bereich angeben würden. –
Ja, tut mir leid, ich hätte genauer sein sollen. Ich habe meinen Beitrag bearbeitet, um dies mit einem Beispiel dieser Art von Arbeiten zu verdeutlichen, indem ich 6 Achsen erstelle und nur 4 davon benutze. Es ist hässlich, aber du wirst sehen, wonach ich suche. Vielen Dank. – Volty