Диапазон второй оси Matploblib
Я могу создать прикрепленный график с двумя осями с помощью этого кода:
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.65]
y = [0, 0.15, 0.3, 0.35, 0.4, 0.55, 0.57, 0.58]
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
def func(x, pos):
return str(2*x)
formatter = FuncFormatter(func)
ax2.xaxis.set_major_formatter(formatter)
ax1.set_ylim([0,1])
ax1.grid(b=True, which='major', color='k', linestyle='--')
ax1.plot(x, y)
plt.savefig('test.png')
Но как мне настроить диапазон верхней оси X от 0 до 1,4? Я заранее не знаю диапазон x, поэтому 1.4 - это магическое число, которое не должно использоваться. Я счастлив, что мне указывают на учебник, который объясняет это или дубликат ответа. Я тоже не могу найти.
У меня есть решение проблемы, но это взломать
ax2.set_xlim([0,0.7])
1 ответ
Какова основная цель включения перемаркировки тиков?
def func(x, pos):
return str(2*x)
formatter = FuncFormatter(func)
ax2.xaxis.set_major_formatter(formatter)
Кажется, что если вы пропустите это, вы получите правильный ответ:
import matplotlib.pyplot as plt
x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.65]
y = [0, 0.15, 0.3, 0.35, 0.4, 0.55, 0.57, 0.58]
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
ax1.set_ylim([0,1])
ax1.grid(b=True, which='major', color='k', linestyle='--')
ax1.plot(x, y)
ax2.set_xlim(0,2*ax1.get_xlim()[1])
plt.show()