使用plotly express中内置的“tips”框架,我首先创建一个datetime列。
import plotly.express as px
import pandas as pd
from datetime import datetime
df_tips = px.data.tips()
datelist = pd.date_range(datetime.today(), periods=df_tips.shape[0]).tolist()
df_tips['date'] = datelist
字符串
使用一列日期时间作为x轴给出错误:
px.scatter(df_tips,x='date',y='tip',trendline='ols')
...
TypeError: cannot astype a datetimelike from [datetime64[ns]] to [int32]
型
使用任何其他列都不会。有什么好方法吗?
2条答案
按热度按时间fsi0uk1n1#
最安全的方法是在日期的序列化表示上运行回归,然后将x轴设置为显示为字符串。序列化表示我的意思是,例如Ben.T在他的评论中建议的方法,或者在Plot best fit line with plotly中使用的方法。然后您可以使用以下命令设置x轴的布局:
字符串
df_tips['date'][0::40]
部分确保每个刻度标记之间有一些空间。情节一:
的数据
如果你想使用数据集的其他维度,这种方法甚至可以很好地工作,例如:
fig = px.scatter(df_tips,x='date',y='tip', color = 'sex', trendline='ols')
:情节二:
的
完整编码:
型
m4pnthwp2#
下面的代码工作并显示了漂亮的图表
字符串