Plotly 水平条形图中的文本被截断

Text is cut-off in Plotly horizontal bar chart

我在Plotly-dash中创建了水平条形图,但是条形文字大小不适合图形大小,所以部分文字被剪切(请参见所附屏幕截图中的红框区域)。

我尝试了以下方法:

  1. 更改图形布局中的左右边距。整个人都动了,文字还是被剪了
  2. 在图形数据中设置'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