python - 在不添加额外列的情况下创建颜色基于年份的散点图

标签 python pandas matplotlib

我在 csv 表中有这些数据

<表类="s-表"> <头> 时间 X Y <正文> 2020-07-03T00:00:00Z 0.08 0.30 2021-07-03T00:00:00Z 0.20 0.12

我想在变量 X 和 Y 之间创建一个散点图,并根据及时看到的数据年份为点着色。我知道我可以添加一个包含年份的额外列,但是有没有更优雅的方法来做到这一点而不添加列?

最佳答案

根据年份为散点着色的“廉价”方法是直接使用 matplotlib 的 scatter绘制并传递年份作为 c parameter of scatter 的参数.

这是一个最小的例子:

import datetime
import pandas as pd
from matplotlib import pyplot as plt
mydf = pd.DataFrame((
               (datetime.datetime(2020, 1, 1, 23, 00), 0.08, 0.3),
               (datetime.datetime(2021, 2,2,1,2,55), 0.2, 0.12), 
               (datetime.datetime(2022, 2,3,11, 00), 0.12, 0.7)
           ),
           columns=("TIME", 'X', 'Y')
       )

plt.scatter(mydf.X, mydf.Y, c=mydf.TIME.dt.year)

plt.show()

enter image description here 然后,您可以使用 cmap 参数来指定要应用的颜色图。

关于python - 在不添加额外列的情况下创建颜色基于年份的散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69407627/

相关文章:

python - 如何在 networkx 中将有向图转换为无向图?

python - 如何从删除的表中恢复列(系列)?

python - 连接 CSV 或表格

Python - 将数组拆分为多个数组

python - 如何在ubuntu中使用python自动连接到SSH?

python - Airflow - 彩色记录

python - pandas 按一天中的时间分组,每组 15 分钟

python - Jupyter Notebook 导入错误,%matplotlib qt

python - 如何在python中为热图的特定元素添加颜色边框或类似的突出显示?

python - matplotlib:相同大小的子图?