Python Plotly如何将坐标轴数字格式化为百分数。

17

这是数据框:

df = pd.DataFrame({"col_1":[0.00143,0.00653,0.00732],"col_2":[0.00984,0.00192,0.00751]},index=['A','B','C'])

这是我的Plotly代码:

trace0 = go.Bar(
x=[df.columns[0],df.columns[1]],
y=[df.ix[0,0],df.ix[0,1]],
name=df.index[0],
# marker=dict(color=cof_pal[0]
)


trace1 = go.Bar(
x=[df.columns[0],df.columns[1]],
y=[df.ix[1,0],df.ix[1,1]],
name=df.index[1],
# marker=dict(color=cof_pal[1]
)



trace2 = go.Bar(
x=[df.columns[0],df.columns[1]],
y=[df.ix[2,0],df.ix[2,1]],
name=df.index[2],
# marker=dict(color=cof_pal[2]
)


layout = go.Layout(showlegend=True, title="Title", font=dict(size=Chart_Title_Font_Size),
               yaxis=dict(title='Percentage Change(%)', titlefont=dict(size=yaxis_font_size), tickfont=dict(size=yaxis_font_size)),
               xaxis=dict(title='Time', titlefont=dict(size=xaxis_font_size), tickfont=dict(size=yaxis_font_size))
              )


data = [trace0,trace1,trace2]

fig = go.Figure(data=data, layout=layout)
iplot(fig, filename='fig1')

我需要y轴以x.xx%的格式显示(或小数点后n位)。

另一个问题是:y轴标题“百分比变化(%)”与y轴数字太靠近了。如何将其移动更远?


如果你有两个问题,请分开提问。 - Andrew Li
3个回答

34
你可以在layout选项中设置tickformat
import plotly.graph_objects as go

layout = go.Layout(yaxis=dict(tickformat=".2%"))

@Maximilian,如果有人想将整数作为x轴标签怎么办?https://stackoverflow.com/questions/49628849/create-a-bar-chart-using-plotly - maniA
@maniA:对于分类值/字符串,可以使用type='categorical',请参见链接中的详细答案。 - Maximilian Peters
5
另一个选择是使用 update_yaxis 函数,例如 fig.update_yaxes(tickformat="%")。该函数用于更新y轴的显示格式,此处将其设置为百分比("%")。 - Daniel Himmelstein

6

2
创建fig对象后,您可以使用fig.update_layout(yaxis_tickformat=".2%")。如果有人不想显示小数或右侧的数字,则可以使用"2%"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接