python - matplotlib 在 pandas DataFrame 中绘制日期时间

标签 python matplotlib pandas

我有一个看起来像这样的 pandas DataFrame training.head()

enter image description here

DataFrame 已按日期排序。我想制作一个散点图,其中事件日期在 x 轴上,成功率在 y 轴上。我能够通过使用 training.plot(x='date',y='rate') 获得折线图。但是,当我将其更改为 training.plot(kind='scatter',x='date',y='rate') 时出现错误:KeyError: u'no item named date'

当我尝试制作散点图时,为什么我的索引列消失了?另外,我敢打赌我需要对那个日期字段做一些事情,这样它就不会被当作一个简单的字符串来对待,不是吗?

额外加分,如果我想让每个帐号用不同的颜色绘制怎么办?

最佳答案

如果我没记错的话,绘图代码只考虑数字列。在内部它只选择数字列,所以这就是你得到关键错误的原因。

date 的 dtype 是什么?如果它是 datetime64,您可以将其重铸为 np.int64:

df['date_int'] = df.date.astype(np.int64)

然后你就是阴谋了。

对于颜色部分,做一个{account number: color}的字典。例如:

color_d = {1: 'k', 2: 'b', 3: 'r'}

然后当你绘图时:

training.plot(kind='scatter',x='date',y='rate', color=df.account.map(color_d))

关于python - matplotlib 在 pandas DataFrame 中绘制日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961360/

相关文章:

python - 连接两列

python - 定位和可选组

python - python 并行化递归

python - Pandas 绘图具有正值一种颜色和负值另一种颜色

python-3.x - Pandas:通过忽略大小写来检查列值(转换大小写)

python - 将字典存储在数据库中

python-2.7 - 顶部有线条的多轴图。 Matplotlib

python - 我正在尝试从文本中获取二进制数据并转换为 numpy 数组

Python 如何计算日期后30天的月份数

python - 如何从 Pandas 中的(纬度,经度,值)列表创建一个 2x2 数组?