如何将Plotly折线图X轴日期标签转换为星期缩写?
解决Plotly折线图X轴替换为星期缩写的问题
不需要硬编码刻度标签,你可以利用数据集已有的Day_of_Week列,通过指定刻度值与显示文本的对应关系实现需求,同时保留日期的原始顺序。
修改后的完整代码
import pandas as pd import plotly.express as px df = pd.read_csv("test.csv") # 筛选非暴力犯罪记录 df = df[df['Occurrence_Category'] == 'Non-Violent'] # 按日期和星期分组统计犯罪数量 df = df.groupby(['Reported_Date', 'Day_of_Week'], as_index=False).size() # 可选:将日期转为datetime类型,提升Plotly时间轴处理稳定性 df['Reported_Date'] = pd.to_datetime(df['Reported_Date']) fig = px.line( df, x='Reported_Date', y='size', labels={'size': '犯罪数量', 'Reported_Date': '星期'}, title="过去90天非暴力犯罪数量趋势" ) fig.update_layout( xaxis=dict( tickmode='array', # 启用自定义刻度数组模式 tickvals=df['Reported_Date'], # 刻度对应的原始日期值 ticktext=df['Day_of_Week'], # 要显示的星期缩写文本 ), yaxis=dict( tickmode='linear', tick0=0, dtick=25 ), ) fig.show()
关键修改说明
- 切换刻度模式:将
xaxis.tickmode设置为'array',允许手动绑定刻度位置与显示文本 - 绑定刻度对应关系:
tickvals传入原始日期列,保证折线图的时间顺序和数据映射完全正确ticktext传入Day_of_Week列的星期缩写,直接替换默认的日期时间显示
注意事项
如果直接将x参数改为Day_of_Week,Plotly会自动将相同星期的日期合并到同一刻度,导致不同日期的犯罪数据重叠,因此不推荐这种方式,除非你需要按星期维度聚合统计数据。
内容的提问来源于stack exchange,提问作者Apparent
相关产品推荐
相关产品推荐

