Plotly Dash图表分类刻度标签无法放置在内部的问题咨询
问题根因
不存在Plotly与Dash的兼容性问题,参数未生效是两个默认配置冲突导致:
- dcc.Graph组件默认开启y轴
automargin属性,会自动调整边距将刻度标签置于轴外侧避免内容裁剪,直接覆盖了ticklabelposition: 'inside'的设置 - 未显式设置
ticklabeloverflow属性,处于轴范围内的内部标签会被默认裁剪规则隐藏
解决方法
修改y轴配置项,关闭自动边距调整、允许标签溢出即可,可根据显示效果微调x轴范围和全局边距:
import dash import dash_core_components as dcc import dash_html_components as html import dash_bootstrap_components as dbc import plotly.express as px animals = ['giraffes', 'orangutans', 'monkeys'] fig = px.bar(x=[20, 14, 23], y=animals) # 修改此处配置 fig.update_layout( yaxis={ 'ticklabelposition': 'inside', 'automargin': False, 'ticklabeloverflow': 'allow' }, # 可选:关闭左侧边距,让标签更贴合柱形左侧 margin=dict(l=0) ) fig.update_xaxes(range=[0, 50]) chart_bar = dcc.Graph(figure=fig) app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], meta_tags=[{"name": "viewport", "content": "width=device-width, initial-scale=1"}]) app.layout = html.Div([ dbc.Row([ dbc.Col(children=chart_bar, md=6)], className='app-body') ], ) if __name__ == '__main__': app.run_server(debug=True)
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

