web-dev-qa-db-ja.com

Pandasデータフレームエラー:matplotlib.axes._subplots.AxesSubplot

import pandas as pd
import matplotlib.pyplot as plt

file = 'd:\\a\\pandas\\test.xlsx'
data = pd.ExcelFile(file)
df1 = data.parse('Link')
df2 = df1[['dataFor', 'total']]
df2

戻り値:

enter image description here

 print (type(df2))

教えて

class 'pandas.core.frame.DataFrame'

しようとしている

df2.plot(kind='line')

戻り値

matplotlib.axes._subplots.AxesSubplot at 0xe4241d0

環境でしょうか?

Jupyter notebook > Help > About

The version of the notebook server is 4.2.3 and is running on:
Python 3.5.2 |Anaconda 4.2.0 (32-bit)| (default, Jul  5 2016, 11:45:57) [MSC    v.1900 32 bit (Intel)]

障害はどこにありますか? matplotlibはまだ標準ですか、初心者はBokehまたはその両方に行くべきですか?

7
vbd

プロットをインラインで表示する場合は、使用します

%matplotlib inline

ヘッダー内(インポート前)。

ウィンドウにグラフィックを表示する場合は、次の行を追加します

plt.show()

最後に(インポートしたことを確認してくださいimport matplotlib.pyplot as pltヘッダー内)。

## importing libraries
## notice to import %matplotlib inline to plot within notebook
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import datetime


## making a DF like yours
df2 = pd.DataFrame([], columns=['dataFor','total'])
df2['dataFor'] = [datetime.datetime(2013, 9, 11),datetime.datetime(2013, 9, 12),datetime.datetime(2013, 9, 13),datetime.datetime(2013, 9, 14),datetime.datetime(2013, 9, 15),datetime.datetime(2013, 9, 16),datetime.datetime(2013, 9, 17)]
df2['total'] = [11,15,17,18,19,20,21]

## notice date are datetimes objects and not strings
df2.plot(kind='line')

出力:

enter image description here

グラフのレイアウトを改善したい場合:

plt.figure(figsize=(20,10))
plt.plot(df2.dataFor, df2.total, linewidth=5)
plt.plot(df2.dataFor, df2.total, '*', markersize=20, color='red')
plt.xticks(fontsize=20, fontweight='bold',rotation=90)
plt.yticks(fontsize=20, fontweight='bold')
plt.xlabel('Dates',fontsize=20, fontweight='bold')
plt.ylabel('Total Count',fontsize=20, fontweight='bold')
plt.title('Counts per time',fontsize=20, fontweight='bold')
plt.tight_layout()

enter image description here

1
epattaro

プロットの実行でも同じ問題が発生しましたが、import句に続いて%matplotlibを実行することで解決しました。私は最新バージョンを使用していると思います。 「%matplotlib inline」を試してみましたが、何らかの理由で、それは私の側では機能しません。

0
Qi Wang