Pandas dataframe error: matplotlib.axes._subplots.AxesSubplot
Pandas dataframe error: 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
returns:
print (type(df2))
告诉我
class 'pandas.core.frame.DataFrame'
正在尝试
df2.plot(kind='line')
returns
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 还是两者兼而有之?
如果您想查看内联图,请使用
%matplotlib inline
在 header(导入之前)。
如果要在 window 中显示图形,请添加行
plt.show()
最后(确保你在 header 中导入了 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')
输出:
如果想改进图形布局:
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()
我在执行绘图时遇到了同样的问题,但我通过 运行 导入子句后跟 %matplotlib 解决了这个问题。我想我正在使用最新版本。我试过“ %matplotlib inline ”,但出于某些原因,它对我不起作用。
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
returns:
print (type(df2))
告诉我
class 'pandas.core.frame.DataFrame'
正在尝试
df2.plot(kind='line')
returns
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 还是两者兼而有之?
如果您想查看内联图,请使用
%matplotlib inline
在 header(导入之前)。
如果要在 window 中显示图形,请添加行
plt.show()
最后(确保你在 header 中导入了 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')
输出:
如果想改进图形布局:
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()
我在执行绘图时遇到了同样的问题,但我通过 运行 导入子句后跟 %matplotlib 解决了这个问题。我想我正在使用最新版本。我试过“ %matplotlib inline ”,但出于某些原因,它对我不起作用。