Matplotlib автоматически меняет диапазон моего сюжета - PullRequest
0 голосов
/ 11 февраля 2020

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

Мой код:

y2=[49973731579774.89, 49973731579774.82, 49973731579774.76, 49973731579774.71, 49973731579774.66, 49973731579774.62, 49973731579774.59, 49973731579774.57, 49973731579774.555, 49973731579774.55, 49973731579774.52, 49973731579774.516, 49973731579774.51, 49973731579774.51, 49973731579774.5, 49973731579774.5, 49973731579774.49, 49973731579774.49, 49973731579774.49, 49973731579774.484, 49973731579774.48, 49973731579774.48, 49973731579774.47, 49973731579774.47, 49973731579774.47, 49973731579774.47, 49973731579774.46, 49973731579774.46, 49973731579774.45, 49973731579774.45, 49973731579774.45, 49973731579774.45, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.44, 49973731579774.44, 49973731579774.44, 49973731579774.44, 49973731579774.44, 49973731579774.43, 49973731579774.43, 49973731579774.42, 49973731579774.42, 49973731579774.42, 49973731579774.42, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39,49973731579774.39]
x=np.arange(len(y2))
plt.ylim(np.min(y2),np.max(y2))
plt.plot(x,y2,label='Validation MSE',color="orange")

Вот что я получаю:

enter image description here

Я хочу удалить то, что я заключил в красный квадрат изображения выше, и сохранить исходный диапазон, как я могу это сделать?

Заранее спасибо.

Редактировать:

Я пытался изменить параметры тиков, как здесь: предотвращать научную c запись в matplotlib.pyplot

Используя следующие команды:

fig, ax = plt.subplots()
y2=[49973731579774.89, 49973731579774.82, 49973731579774.76, 49973731579774.71, 49973731579774.66, 49973731579774.62, 49973731579774.59, 49973731579774.57, 49973731579774.555, 49973731579774.55, 49973731579774.52, 49973731579774.516, 49973731579774.51, 49973731579774.51, 49973731579774.5, 49973731579774.5, 49973731579774.49, 49973731579774.49, 49973731579774.49, 49973731579774.484, 49973731579774.48, 49973731579774.48, 49973731579774.47, 49973731579774.47, 49973731579774.47, 49973731579774.47, 49973731579774.46, 49973731579774.46, 49973731579774.45, 49973731579774.45, 49973731579774.45, 49973731579774.45, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.445, 49973731579774.44, 49973731579774.44, 49973731579774.44, 49973731579774.44, 49973731579774.44, 49973731579774.43, 49973731579774.43, 49973731579774.42, 49973731579774.42, 49973731579774.42, 49973731579774.42, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.414, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.41, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.4, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39, 49973731579774.39,49973731579774.39]
x=np.arange(len(y2))
plt.ylim(np.min(y2),np.max(y2))
ax.ticklabel_format(useOffset=False, style='plain')
plt.plot(x,y2,label='Validation MSE',color="orange")
plt.show()

Но то, что изменился только диапазон, я хочу сохранить десятичные дроби. enter image description here

Новое редактирование:

Это изображение, которое я хочу: enter image description here

1 Ответ

1 голос
/ 11 февраля 2020

Попробуйте следующий обходной путь.

fig, ax = plt.subplots()
y2 = np.array([49973731579774.89, 49973731579774.82, ....]) # Convert to NumPy array

x = np.arange(len(y2))
plt.ylim(np.min(y2), np.max(y2))

ax.ticklabel_format(useOffset=False, style='plain')
ax.plot(x, y2, label='Validation MSE',color="orange")

# Extract the current, default ticklabels and convert them to floats
# Then subtract the lowest, closest integer value to just keep the decimals
fig.canvas.draw()
new_ticks = [round(float(i.get_text().strip('$'))-np.floor(min(y2)), 4) for i in ax.get_yticklabels()]

# Set the new, desired ticklabels
ax.set_yticklabels(new_ticks);

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...