简体   繁体   中英

Percentage sign in matplotlib on y-axis

I have the following pandas plot:

在此处输入图像描述

Is it possible to add '%' sign on the y axis not as a label but on the number.
Such as it would show instead of 0.0 it would be 0.0% and so on for all the numbers?

Code:

import pandas as pd
from pandas import datetime
from pandas import DataFrame as df
import matplotlib
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import datetime 
end = datetime.date.today()
start = datetime.date(2020,1,1)

data = web.DataReader('fb', 'yahoo', start, end)
data['percent'] = data['Close'].pct_change()
data['percent'].plot()

Here is how you can use matplotlib.ticker :

import matplotlib.pyplot as plt
import matplotlib.ticker as mtick

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.set_major_formatter(mtick.PercentFormatter())
plt.show()

Output:

在此处输入图像描述

You can now control the display format of the y-axis. I think it will be 0.0% .

yvals = ax.get_yticks()
ax.set_yticklabels(["{:,.1%}".format(y) for y in yvals], fontsize=12)

You can also use plt.gca() instead of using ax

import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(xmax=1.0))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM