Я немного искал, уже столкнулся со следующими связанными вопросами: Matplotlib: отключите степени десяти в логарифмическом графике
Однако ни один из них не смог реально помочь мне. По сути, я делаю достаточно простую диаграмму рассеяния с соответствующей картой цветов, однако я не могу избавиться от маркировки мощности 10 на оси Y. Вот мой код и получившийся сюжет. 'teff', 'lum' и 'col1' — это серии dtype('float64'), и я определил цветовую карту rvb в отдельной функции.
plt.figure(figsize=(12,6))
plt.scatter(teff,lum,s=10,c=col1, cmap=rvb)
plt.yscale('log')
plt.colorbar()
axes = plt.gca()
plt.gca().invert_xaxis()
plt.xlabel('Effective Temperature [K]')
plt.ylabel('Luminosity [L$_{\odot}$]')
plt.show()
Я пробовал несколько вариантов следующего решения, найденного в похожих вопросах.
from matplotlib.ticker import ScalarFormatter
ax.get_yaxis().get_major_formatter().set_useOffset(False)
Однако я просто получаю ошибки, например. Объект LogFormatterSciNotation не имеет атрибута set_useOffset.
Я также пытался решить проблему с помощью подзаговоров, но тогда я не могу заставить работать цветовую карту. Я надеюсь на решение, которое позволит мне сохранить мой график почти идентичным, просто с изменением степени 10 на фактические числа и, если возможно, с более регулярными интервалами.
Спасибо!