Ich möchte Pandas Histogramm auf eine Achse zeichnen, aber das Verhalten ist wirklich seltsam. Ich weiß nicht, was hier los ist.Python & Pandas: Seltsames Verhalten, wenn Pandas Histogramm zu einer bestimmten Axt plotten
fig1, ax1 = plt.subplots(figsize=(4,3))
fig2, ax2 = plt.subplots(figsize=(4,3))
fig3, ax3 = plt.subplots(figsize=(4,3))
# 1. This works
df['speed'].hist()
# 2. This doens't work
df['speed'].hist(ax=ax2)
# 3. This works
data = [1,2,3,5,6,2,3,4]
temp_df = pd.DataFrame(data)
temp_df.hist(ax=ax2)
Die Fehler jupyter Notebook wieder ist:
AssertionError Traceback (most recent call last)
<ipython-input-46-d629de832772> in <module>()
7
8 # This doens't work
----> 9 df['speed'].hist(ax=ax2)
10
11 # # This works
D:\Anaconda2\lib\site-packages\pandas\tools\plotting.pyc in hist_series(self, by, ax, grid, xlabelsize, xrot, ylabelsize, yrot, figsize, bins, **kwds)
2953 ax = fig.gca()
2954 elif ax.get_figure() != fig:
-> 2955 raise AssertionError('passed axis not bound to passed figure')
2956 values = self.dropna().values
2957
AssertionError: passed axis not bound to passed figure
Der Quellcode Pandas ist hier:
total keine Ahnung, was mit meinem Code falsch ist.
Auch ich bin auf dieses Problem gestoßen, aber ich habe die Antwort nicht gut verstanden: _pandas bestimmt, welche die aktive Figur ist_ Im zweiten Fall zeigte der Typ 'ax = ax2' aber warum ist das nicht genug? In dem Fall, dass Sie eine einfache "Plot", und nicht "Hist", und es funktioniert. Warum gibt es einen Unterschied zwischen diesen beiden Funktionen? Thnaks – SPS
@SPS: Warum? Ich weiß es nicht. Der Hack, der das undokumentierte "figure" -Argument verwendet, scheint nur in "hist" zu existieren. Warum das ist, weiß ich nicht. – BrenBarn