Как предотвратить изменение чисел в экспоненциальную форму в Python matplotlib рисунок
Я использую Matplotlib в Python для построения простых наборов данных x-Y. Это создает красивые графики, хотя, когда я "приближаю" слишком близко к различным разделам построенного графика, используя вид фигуры (который появляется при выполнении plt.show()
), значения оси x изменяют от стандартной формы номера (1050, 1060, 1070 etc.) к научной форме с экспоненциальной нотацией (например, 1, 1.5, 2.0 с меткой оси x, заданной как +1.057e3
).
Я бы предпочел, чтобы мои цифры, чтобы сохранить простой нумерация оси, а не использование экспоненциальной формы. Есть ли способ заставить Matplotlib сделать это?
3 ответов
форматирование меток галочек управляется с помощью Formatter
объект, который, предполагая, что вы не сделали ничего необычного, будет ScalerFormatter
по умолчанию. Этот форматер будет использовать постоянный сдвиг, если дробное изменение видимых значений очень мало. Чтобы избежать этого, просто выключите его:
plt.plot(arange(0,100,10) + 1000, arange(0,100,10))
ax = plt.gca()
ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.draw()
если вы хотите избежать научной нотации в целом,
ax.get_xaxis().get_major_formatter().set_scientific(False)
может контролировать это с глобально через axes.formatter.useoffset
rcparam.
вы можете использовать что-то вроде:
from matplotlib.ticker import ScalarFormatter, FormatStrFormatter
ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f'))