我在 csv 表中有这些数据
我想在变量 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()
然后,您可以使用 cmap
参数来指定要应用的颜色图。
https://stackoverflow.com/questions/69407627/