Matplotlib pyplot axes formatter
У меня есть изображение:
Здесь по оси y я хотел бы получить 5x10^-5 4x10^-5
и т. Д. Вместо 0.00005 0.00004
.
Я пробовал до сих пор:
fig = plt.figure() ax = fig.add_subplot(111) y_formatter = matplotlib.ticker.ScalarFormatter(useOffset=True) ax.yaxis.set_major_formatter(y_formatter) ax.plot(m_plot,densities1,'-ro',label='0.0<z<0.5') ax.plot(m_plot,densities2, '-bo',label='0.5<z<1.0') ax.legend(loc='best',scatterpoints=1) plt.legend() plt.show()
Кажется, это не работает. На странице документа для тикеров нет прямого ответа.
- генерируя JPG с matplotlib с метками UTF-8, когда DISPLAY не определен в python
- Общая легенда в matplotlib
- Как получить внутридневную цену – объемный участок в Пандах?
- pyinstaller: создание python exe с использованием matplotlib
- Быстрая сфера с питоном
Вы можете использовать matplotlib.ticker.FuncFormatter
чтобы выбрать формат ваших тиков с функцией, как показано в приведенном ниже примере кода. Фактически вся функция выполняет преобразование ввода (float) в экспоненциальную нотацию, а затем заменяет «e» на «x10 ^», чтобы вы получили желаемый формат.
import matplotlib.pyplot as plt import matplotlib.ticker as tick import numpy as np x = np.linspace(0, 10, 1000) y = 0.000001*np.sin(10*x) fig = plt.figure() ax = fig.add_subplot(111) ax.plot(x, y) def y_fmt(x, y): return '{:2.2e}'.format(x).replace('e', 'x10^') ax.yaxis.set_major_formatter(tick.FuncFormatter(y_fmt)) plt.show()
Если вы хотите использовать экспоненциальную нотацию (т. Е. 5.0e-6.0), то есть гораздо более аккуратное решение, в котором вы используете matplotlib.ticker.FormatStrFormatter
чтобы выбрать строку формата, как показано ниже. Формат строки задается стандартными правилами форматирования строки Python.
... y_fmt = tick.FormatStrFormatter('%2.2e') ax.yaxis.set_major_formatter(y_fmt) ...
- В Python, как я могу превратить этот формат в временную метку unix?
- различия в производительности при работе в Linux и Windows
- Обновление координат графиков в matplotlib
- Матрица заполнения с массивом координат в python
- `ValueError: операнды не могут транслироваться вместе 'при попытке построить одномерное распределение из столбца DataFrame с использованием Seaborn
- В python, используя matplotlib, как отображать многострочные строки в ax.fmt_xdata
- Добавить белый фон в colorbar в matplotlib
- matplotlib imshow subplots sharey breaks x пределы
- Могу ли я организовать 3 одинаковых размера подсетей в треугольной форме?
- Matplotlib – почему цвет линии штрихового графика черный?
- Pandas: рабочий процесс поворота и графика