Как отформатировать большое значение по оси Y в Matplotlib?

#python #matplotlib

Вопрос:

Я строю данные об объеме криптографии, получаемой с бирж, которые имеют размер 8-9 цифр. Я знаю, что мог бы отформатировать его, добавив разделитель, но что, если я захочу показать его в Ks? например, 100 000 должно отображаться как 100 тысяч?

Спасибо

Ответ №1:

Вы можете использовать matplotlib.тикер. Я создал пример ниже:

 import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as ticker

#Random Data
y = np.arange(1000, 2000, 100)
x = 1   np.sin(2 * np.pi * y)

fig, ax = plt.subplots()
ax.plot(x, y)

# y / 1000 -> K
ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, pos: 
'{:,.2f}'.format(y/1000)   'K'))

ax.set(xlabel='x', ylabel='y', title='Graph Title')
plt.show()
 

введите описание изображения здесь