17

Here's the dataframe

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

Here's my plotly code:

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')

I need the y axis to be x.xx% format (or n digits after the decimal point).

Another question is: the y axis title "Percentage Change(%)" is too close to the y axis numbers. How to move it further?

1
  • If you have two questions, ask separately Commented Jan 11, 2017 at 3:45

3 Answers 3

34

You could set tickformat in the layout options.

import plotly.graph_objects as go

layout = go.Layout(yaxis=dict(tickformat=".2%"))
Sign up to request clarification or add additional context in comments.

3 Comments

@Maximilian, what about if one wants to have integers as labels of x-axis? stackoverflow.com/questions/49628849/…
@maniA: for categorical values/strings type='categorical' can be used, see the detailed answer in the link.
Another option is to use the update_yaxis function like fig.update_yaxes(tickformat="%").
6

You can use ticksuffix in the layout options.

yaxis=dict(ticksuffix=".00%")

layout = go.Layout(                
                yaxis=dict(ticksuffix=".00%", tickangle=45, title='Percentage Change(%)')

https://plot.ly/python/reference/#layout-yaxis

Comments

4

After you've created your fig object you can use fig.update_layout(yaxis_tickformat=".2%").

If someone didn't want a decimal or the numbers to the right of it showing they could use "2%".

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.