#python #matplotlib
Вопрос:
У меня есть этот массив с 10 значениями.
Я понимаю, что в моем массиве так много чисел за запятой. Но я замечаю, что в левом верхнем углу есть значение.
Кто-нибудь знает, что это такое и как его удалить?
Заранее спасибо.
массив:
0.00409960926442099
0.00409960926442083
0.004099609264420652
0.004099609264420653
0.004099609264420585
0.0040996092644205884
0.004099609264420545
0.004099609264420517
0.004099609264420514
0.004099609264420513
Ответ №1:
Поскольку все ваши значения очень близки друг к другу, обычные галочки будут одинаковыми. Например, если вы используете»%. 6f «в качестве формата тика, вы получите «0,00410» для каждого из тиков. Это было бы не очень полезно. Поэтому matplotlib помещает базовый номер ‘4.096609264420 e-3’ вместе со смещением ‘1e-16’ для обозначения меток. Таким образом, каждый реальный тик будет базой плюс смещение, умноженное на значение тика.
Чтобы избавиться от этих странных цифр, вам нужно переоценить, чего именно вы хотите достичь с помощью своего сюжета. Если бы вы установили некоторые пределы y (например plt.ylim(0.004099, 0.004100)
), вы получили бы довольно скучную горизонтальную линию. Обратите внимание, что 1e-16 очень близка к максимальной точности, которую вы можете получить, используя стандартную математику с плавающей запятой.
Вот несколько демонстрационных кодов, чтобы показать, как это будет выглядеть в формате»%. 6f» .:
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
plt.plot([0.00409960926442099, 0.00409960926442083, 0.004099609264420652, 0.004099609264420653,
0.004099609264420585, 0.0040996092644205884, 0.004099609264420545, 0.004099609264420517,
0.004099609264420514, 0.004099609264420513])
plt.gca().yaxis.set_major_formatter(mtick.FormatStrFormatter('%.6f'))
plt.tight_layout()
plt.show()