Plotly 水平条形图中的文本被截断
Text is cut-off in Plotly horizontal bar chart
我在Plotly-dash中创建了水平条形图,但是条形文字大小不适合图形大小,所以部分文字被剪切(请参见所附屏幕截图中的红框区域)。
我尝试了以下方法:
- 更改图形布局中的左右边距。整个人都动了,文字还是被剪了
- 在图形数据中设置'offset'。我有条形的垂直偏移,但没有图形区域的水平偏移。
如果有人可以建议如何修复它,我将不胜感激。
Dash bar chart with the text cut
然后我尝试添加选项 cliponaxis = False。文本变得可见,但与轴标签重叠,仍然不是预期的行为:
cliponaxis = False
我用来制作条形图的代码:
dcc.Graph(
id="dashboard2-graph1",
figure={
"data": [
go.Bar(
x=x2_data,
y=y2_data,
text=x2_text,
cliponaxis = False,
hoverinfo='skip',
hovertemplate="Филиал: %{y} <br>Оборот, тыс. руб.:{text}",
name='',
orientation='h',
textposition='auto',
marker={
"color": df_merged['Color1'],
"line": {
"color": "rgb(255, 255, 255)",
"width": 2,
},
},
),
],
"layout": go.Layout(
autosize=True,
title_text='Оборот, тыс. руб.',
margin={
"r": 0,
"t": 50,
"b": 20,
"l": 70,
},
),
},
config={"displayModeBar": False},
style={'align':'left'},
),
与 SO 上的缺点不同,我从 Plotly 社区获得了真正的帮助。希望它不仅对我有帮助。
为避免上述行为,可以手动设置 x 轴范围:
fig = fig.update_layout(
xaxis_range=[-1.0e5, 1.3e5]
)
现在我的仪表板看起来好多了。最后,我使用以下表达式来适应 xaxis 范围:
xaxis = dict(range=[-abs(min(map(float, x2_data))*2 - max(map(float, x2_data))*0.25), max(map(float, x2_data))]),
Resulted image
我在Plotly-dash中创建了水平条形图,但是条形文字大小不适合图形大小,所以部分文字被剪切(请参见所附屏幕截图中的红框区域)。
我尝试了以下方法:
- 更改图形布局中的左右边距。整个人都动了,文字还是被剪了
- 在图形数据中设置'offset'。我有条形的垂直偏移,但没有图形区域的水平偏移。
如果有人可以建议如何修复它,我将不胜感激。
Dash bar chart with the text cut
然后我尝试添加选项 cliponaxis = False。文本变得可见,但与轴标签重叠,仍然不是预期的行为: cliponaxis = False
我用来制作条形图的代码:
dcc.Graph(
id="dashboard2-graph1",
figure={
"data": [
go.Bar(
x=x2_data,
y=y2_data,
text=x2_text,
cliponaxis = False,
hoverinfo='skip',
hovertemplate="Филиал: %{y} <br>Оборот, тыс. руб.:{text}",
name='',
orientation='h',
textposition='auto',
marker={
"color": df_merged['Color1'],
"line": {
"color": "rgb(255, 255, 255)",
"width": 2,
},
},
),
],
"layout": go.Layout(
autosize=True,
title_text='Оборот, тыс. руб.',
margin={
"r": 0,
"t": 50,
"b": 20,
"l": 70,
},
),
},
config={"displayModeBar": False},
style={'align':'left'},
),
与 SO 上的缺点不同,我从 Plotly 社区获得了真正的帮助。希望它不仅对我有帮助。
为避免上述行为,可以手动设置 x 轴范围:
fig = fig.update_layout(
xaxis_range=[-1.0e5, 1.3e5]
)
现在我的仪表板看起来好多了。最后,我使用以下表达式来适应 xaxis 范围:
xaxis = dict(range=[-abs(min(map(float, x2_data))*2 - max(map(float, x2_data))*0.25), max(map(float, x2_data))]),
Resulted image