Как я могу переформатировать метки осей в научную нотацию в matplotlib?

#matplotlib #formatting #multiple-axes

Вопрос:

Я создал этот графиквведите описание изображения здесь, используя код, который я вставил сюда.

Как я могу переформатировать самые правые метки y, чтобы они имели ту же нотацию, что и самая левая ось y? Соответствующая часть моего кода такова:

 ax1.set_ylabel('Flux sensitivity, $Delta S$ [Jy]')
ax1.set_xlabel('Integration time [s]')
ax1.set_xscale('log')
ax1.set_yscale('log')
ax1.grid(True)

ax2 = ax1.twiny()
hours = [0.03, 0.28, 2.78, 27.8, 278]
seconds = [1e2, 1e3, 1e4, 1e5, 1e6]
ax2.set_xscale('log')
ax2.set_xticks(seconds)
ax2.set_xticklabels(hours, rotation = 0)
ax2.set_xlabel('Integration time [hours]')
ax2.set_xlim(ax1.get_xlim())

ax3 = ax1.twinx()
WmHz   = [1e-30, 1e-31, 1e-32, 1e-33]
jansky = [1e-4, 1e-5, 1e-6, 1e-7]
ax3.set_yscale('log')
ax3.set_yticks(jansky)
ax3.set_yticklabels(WmHz, rotation = 0)
ax3.set_ylabel(r'Flux sensitivity [W m$^{-2}$ Hz$^{-1}$]')
ax3.set_ylim(ax1.get_xlim())
 

Ответ №1:

решенный: Я отформатировал WmHz список следующим образом

WmHz = [r'$10^{-30}$', r'$10^{-31}$', r'$10^{-32}$', r'$10^{-33}$']