如何在plotly(python)中的刻度标签和图形之间添加空间?

时间:2018-09-18 17:02:06

标签: python plotly

如果我使用plotly创建水平条形图,则每个条形的标签都将紧靠该图。我想在标签和图形之间添加一些空格/填充/边距。我怎样才能做到这一点?

示例:

import plotly.offline as py
import plotly.graph_objs as go
labels = ['Alice','Bob','Carl']
vals = [2,5,4]

data = [go.Bar(x=vals, y=labels, orientation='h')]

fig = go.Figure(data)
py.iplot(fig)

enter image description here

3 个答案:

答案 0 :(得分:3)

只需在pad中使用参数margin。检查来自文档here的示例。 代码:

import plotly.offline as py
import plotly.graph_objs as go

labels = ['Alice','Bob','Carl']
vals = [2,5,4]

data = [go.Bar(x=vals, y=labels, orientation='h')]

layout = go.Layout(
    margin=dict(
        pad=20
    ),
    title = 'hbar',
)
fig = go.Figure(data=data,layout=layout)

py.plot(fig, filename='horizontal-bar.html')

并且情节应该看起来像这样: Your plot

答案 1 :(得分:0)

我认为您可以添加一些这样的代码。

import plotly.offline as py
import plotly.graph_objs as go
labels = ['Alice','Bob','Carl']
vals = [2,5,4]

data = [go.Bar(x=vals, y=labels, orientation='h')]
layout = dict(yaxis=dict(ticksuffix="   "))
fig = go.Figure(data=data,layout=layout)
py.iplot(fig)

添加后缀可以轻松解决此问题。我已经检查了引用plotly ref,它也有更合适的名为tickformat的密钥,但是很难使用,所以我没有使用它。

答案 2 :(得分:0)

更短的解决方案:

fig.update_layout(margin_pad=10)