Я пытаюсь установить формат в два десятичных числа в среде subplot matplotlib. К сожалению, я не знаю, как решить эту задачу.Matplotlib: Укажите формат поплавков для галочек.
Чтобы предотвратить использование научной нотации по оси y, я использовал ScalarFormatter(useOffset=False)
, как вы можете видеть в моем фрагменте ниже. Я думаю, что моя задача должна быть решена путем передачи дополнительных параметров/аргументов используемому форматированию. Однако я не мог найти никакого намека на документацию matplotlib.
Как установить две десятичные цифры или ни один (оба случая необходимы)? К сожалению, я не могу предоставить образцы данных.
- SNIPPET -
f, axarr = plt.subplots(3, sharex=True)
data = conv_air
x = range(0, len(data))
axarr[0].scatter(x, data)
axarr[0].set_ylabel('$T_\mathrm{air,2,2}$', size=FONT_SIZE)
axarr[0].yaxis.set_major_locator(MaxNLocator(5))
axarr[0].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[0].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[0].grid(which='major', alpha=0.5)
axarr[0].grid(which='minor', alpha=0.2)
data = conv_dryer
x = range(0, len(data))
axarr[1].scatter(x, data)
axarr[1].set_ylabel('$T_\mathrm{dryer,2,2}$', size=FONT_SIZE)
axarr[1].yaxis.set_major_locator(MaxNLocator(5))
axarr[1].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[1].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[1].grid(which='major', alpha=0.5)
axarr[1].grid(which='minor', alpha=0.2)
data = conv_lambda
x = range(0, len(data))
axarr[2].scatter(x, data)
axarr[2].set_xlabel('Iterationsschritte', size=FONT_SIZE)
axarr[2].xaxis.set_major_locator(MaxNLocator(integer=True))
axarr[2].set_ylabel('$\lambda$', size=FONT_SIZE)
axarr[2].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[2].yaxis.set_major_locator(MaxNLocator(5))
axarr[2].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[2].grid(which='major', alpha=0.5)
axarr[2].grid(which='minor', alpha=0.2)
Примечание: если вы предпочитаете использовать новый '.format () 'style, вы можете использовать' StrMethodFormatter', упомянутый в [связанной папке e] (http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.StrMethodFormatter) – mangecoeur
Я рисую с помощью 'imshow', и это не работает для меня. Я также попробовал 'plt.gca(). Yaxis.set_major_formatter (FormatStrFormatter ('%. G'))' из [этого ответа] (https://stackoverflow.com/questions/42929550/ticks-format-of- a-axis-in-matplotlib), но безрезультатно. Есть идеи? – airdas
@airdas Если у вас возникли проблемы, задайте новый вопрос об этом, указав все подробности и [mcve] проблемы. – ImportanceOfBeingErnest