【问题标题】:Pandas dataframe error: matplotlib.axes._subplots.AxesSubplot熊猫数据框错误:matplotlib.axes._subplots.AxesSubplot
【发布时间】:2017-06-13 09:38:01
【问题描述】:
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

返回:

 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 或两者兼而有之?

【问题讨论】:

  • 这一切都很好并且按预期工作。究竟是什么问题?你会期待什么,会发生什么?
  • 我在 0xe4241d0 处收到 matplotlib.axes._subplots.AxesSubplot 消息,但 jupyter 笔记本中没有显示任何图形。
  • 我不推荐散景,除非你已经知道你只会制作网络图形。

标签: python pandas matplotlib bokeh


【解决方案1】:

如果您想查看内联图,请使用

%matplotlib inline

在标题中(在导入之前)。

如果要在窗口中显示图形,请添加行

plt.show()

最后(确保您已在标题中导入import matplotlib.pyplot as plt)。

【讨论】:

  • 错过了 plt.show() ...请注意,我永远不会在星期五下午晚些时候发帖...
  • 对于寻找 missingno 库为什么不在 jupyter 中显示图的其他人,请在单个单元格中使用 %matplotlib inline。 (多亏了这个答案才弄清楚)
  • %matplotlib 内联放置在 res.plot() 之前而不是在 jupyter 中导入之前。
【解决方案2】:
## 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()

【讨论】:

    【解决方案3】:

    我在执行绘图时遇到了同样的问题,但我通过运行 import 子句和 %matplotlib 解决了这个问题。我想我正在使用最新版本。我已经尝试过“ %matplotlib inline ”,但由于某些原因,它对我不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      • 2018-11-19
      • 2018-07-13
      • 1970-01-01
      • 2021-11-09
      相关资源
      最近更新 更多