Plotly自定义坐标轴刻度:隐藏非整数刻度标签保留整数标签
实现方案
核心通过自定义Y轴的tickvals和ticktext参数实现需求:tickvals保留所有0.5间隔的刻度位置,保证整数、半整数位置都显示刻度线;ticktext仅为整数位置赋值,半整数位置设为空字符串隐藏对应标签。
完整修改代码
import plotly.express as px import numpy as np df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length", facet_col="species") # 自动适配数据范围生成刻度边界,也可手动指定为固定值如y_min=4、y_max=8 y_min = int(df['sepal_length'].min() // 1) y_max = int(df['sepal_length'].max() // 1 + 1) # 生成0.5间隔的所有刻度位置 y_tick_vals = np.arange(y_min, y_max + 0.5, 0.5) # 仅整数位置显示刻度标签,非整数位置标签留空 y_tick_text = [str(int(val)) if val.is_integer() else '' for val in y_tick_vals] fig.update_yaxes(linewidth=0.5, ticks="outside", tickwidth=0.5, tickcolor='blue', ticklen=10, tickvals = y_tick_vals, ticktext = y_tick_text, tickfont_size=22, ) fig.show()
参数说明
tickvals:手动指定所有需要显示刻度线的位置,保持0.5的间隔即可保留所有半整数位置的刻度线ticktext:和tickvals一一对应的刻度显示文本,半整数位置赋值为空字符串即可隐藏对应标签,同时不影响刻度线显示
内容的提问来源于stack exchange,提问作者hans
相关产品推荐
相关产品推荐

