【问题标题】:pandas and matplotlib plot dataframepandas 和 matplotlib 绘图数据框
【发布时间】:2016-09-06 04:13:02
【问题描述】:

我有以下熊猫数据框

test = pd.DataFrame({'cities':['A','B','A','B','A','B',],
               'date':['2016-9-1','2016-9-1','2016-9-2','2016-9-2','2016-9-3','2016-9-3'],
               'count':[10,20,30,40,50,60]})

我想绘制两个散点图,一个用于城市“A”,一个用于城市“B”。在每个图中,x 轴是日期,y 轴是计数。

我试了一下,但代码太丑了,我不敢张贴。希望有人能以优雅的方式提供帮助。

谢谢。

【问题讨论】:

  • 不要害羞,向我们展示:没有什么比不分享自己的代码而要求代码更丑的了

标签: pandas matplotlib plot


【解决方案1】:

设置

test = pd.DataFrame({'cities':['A','B','A','B','A','B',],
               'date':['2016-9-1','2016-9-1','2016-9-2','2016-9-2','2016-9-3','2016-9-3'],
               'count':[10,20,30,40,50,60]})

test.date = pd.to_datetime(test.date)

解决方案

import matplotlib.pyplot as plt


gb = test.groupby('cities')

fig, axes = plt.subplots(gb.ngroups)
for i, (name, df) in enumerate(gb):
    ax = axes[i]
    ax.scatter(df['date'].values, df['count'].values)
    ax.set_title(name)

fig.autofmt_xdate()
fig.tight_layout()

【讨论】:

  • 我认为您首先需要将date 列转换为datetimepd.to_datetime,因为没有它会导致绘图错误。
  • @AntonProtopopov 我愿意!我忘记了复制/粘贴的那部分...谢谢
  • 我正在尝试这个testA=test[test.cities=='A'],然后是testA.plot(x=testA['date'],y=testA['count'],kind='scatter'),我收到了这个错误:KeyError: "['2016-09-01T00:00:00.000000000' '2016-09-02T00:00:00.000000000'\n '2016-09-03T00:00:00.000000000'] not in index"。你能解释一下我在这里做错了什么吗?
猜你喜欢
  • 2021-03-21
  • 2019-04-15
  • 2017-03-21
  • 2017-12-12
  • 1970-01-01
  • 2019-12-12
  • 2016-06-04
  • 2016-01-11
  • 1970-01-01
相关资源
最近更新 更多