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

如何让Plotly Express直方图X轴仅显示完整年份而非半年份?

解决Plotly Express直方图X轴显示非完整年份的问题

问题原因

Plotly默认将数值类型的年份识别为连续变量,因此会自动生成如2019.5这类中间刻度值。以下是几种可行的解决办法:


方法1:将年份转为字符串类型

把YEAR列转换为字符串后,Plotly会将其视为离散类别,仅显示数据中存在的完整年份:

import pandas as pd
import plotly.express as px

hail_month2 = {"YEAR": [2018, 2019], "MAGNITUDE": [1.75, 2]}
hail_month2 = pd.DataFrame(hail_month2)
# 转换年份为字符串类型
hail_month2['YEAR'] = hail_month2['YEAR'].astype(str)
month2 = px.histogram(hail_month2, 
                      x='YEAR',
                      color='MAGNITUDE')
month2.show()

方法2:手动指定X轴刻度与范围

若需保留年份的数值属性,可通过update_xaxes强制设置X轴仅显示数据中的完整年份:

import pandas as pd
import plotly.express as px

hail_month2 = {"YEAR": [2018, 2019], "MAGNITUDE": [1.75, 2]}
hail_month2 = pd.DataFrame(hail_month2)
month2 = px.histogram(hail_month2, 
                      x='YEAR',
                      color='MAGNITUDE')
# 设置X轴刻度为数据中的唯一年份,同时限定轴范围
month2.update_xaxes(
    tickvals=hail_month2['YEAR'].unique(),
    range=[2017.5, 2019.5]
)
month2.show()

方法3:将年份转为分类类型

将YEAR列设为pandas的分类类型,同样会被Plotly识别为离散类别,避免生成中间刻度:

import pandas as pd
import plotly.express as px

hail_month2 = {"YEAR": [2018, 2019], "MAGNITUDE": [1.75, 2]}
hail_month2 = pd.DataFrame(hail_month2)
# 转换为分类类型
hail_month2['YEAR'] = hail_month2['YEAR'].astype('category')
month2 = px.histogram(hail_month2, 
                      x='YEAR',
                      color='MAGNITUDE')
month2.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:32:41