#python-3.x #matplotlib
#python-3.x #matplotlib
Вопрос:
Как мне использовать числовой формат, например x0.00%, для метки числового значения на метке метки Matplotlib по оси x или y? Например, я бы хотел, чтобы число 0.00125 отображалось как метка 0.125%. Я строю гистограммы с 1, 2 и 3 сигмами ежедневной доходности акций. Обычно значения находятся в диапазоне менее 1,00%, но иногда могут составлять> 10,0000% для /- 3 сигм. Таким образом, у меня будут метки размером от 0,0010% до 10,0000%. Да, хвосты толстые; акции торгуются слабо; или происходит сбой / восстановление flash. Спасибо за вашу помощь.
Комментарии:
1. Вы пробовали использовать a
PercentFormatter
? Он не был написан с учетом жирных хвостов или сбоев flash, но, тем не менее, может помочь.
Ответ №1:
Вы могли бы использовать matplotlib.ticker
, который поможет вам отформатировать каждую галочку. В этом примере кода я округлил каждое значение до трех знаков после запятой и заменил знак минус на тот, который я хотел.
Вы можете добавить условные операторы для разных значений x или y и указать, какой тип метки вы хотите!
import matplotlib.ticker as ticker
@ticker.FuncFormatter
def major_formatter(y, pos):
label = "-" str(-round(y, 3)) if y < 0 else str(round(y, 3))
return label
ax.yaxis.set_major_formatter(major_formatter)
@ticker.FuncFormatter
def major_formatter(x, pos):
label = "-" str(-round(x, 3)) if x < 0 else str(round(x, 3))
return label
ax.xaxis.set_major_formatter(major_formatter)