You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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()

关键修改说明

  1. 切换刻度模式:将xaxis.tickmode设置为'array',允许手动绑定刻度位置与显示文本
  2. 绑定刻度对应关系:
    • tickvals传入原始日期列,保证折线图的时间顺序和数据映射完全正确
    • ticktext传入Day_of_Week列的星期缩写,直接替换默认的日期时间显示

注意事项

如果直接将x参数改为Day_of_Week,Plotly会自动将相同星期的日期合并到同一刻度,导致不同日期的犯罪数据重叠,因此不推荐这种方式,除非你需要按星期维度聚合统计数据。

内容的提问来源于stack exchange,提问作者Apparent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:55:23