px.line 中的color 不采用Timestamp 作为参数。如果它以某种方式发生了,我不确定结果会是什么。也许是一种表明时间流逝的颜色?我不确定,真的。但我猜你在这里寻找的是按一年中的月份或日期识别数据点,并将其作为一个因素或类别进行说明。我将使用来自plotly 的示例和来自SO 帖子Generating random dates within a given range in pandas 的建议来展示如何执行后者。
剧情:
下面的 sn-p 生成一堆随机日期,将月份数字提取为整数,将其添加到 iris 数据集,并让px.Scatter() 将其用作着色的输入。
代码:
# Load example from https://plot.ly/python/creating-and-updating-figures/
import plotly.express as px
import pandas as pd
import numpy as np
iris = px.data.iris()
# Add random dates using a suggestion from https://stackoverflow.com/questions/50559078/generating-random-dates-within-a-given-range-in-pandas
def random_dates(start, end, n, seed=1, replace=True):
dates = pd.date_range(start, end).to_series()
return dates.sample(n, replace=replace, random_state=seed)
dates=random_dates("20190101","20191212", len(iris), seed=1)
months=[m.month for m in dates]
iris['month']=months
fig = px.scatter(iris, x="sepal_width", y="sepal_length", color="month")
fig.show()
如果您想使用月份,只需将months=[m.month for m in dates] 更改为days=[m.day for d in dates],并将px.Scatter 中的引用从color="month" 调整为color="days"。
请告诉我这对你有什么影响。