The answer to this question предлагает, чтобы я играл с set_ylim
/get_ylim
, чтобы выровнять две оси с двумя осями. Однако, похоже, это не работает для меня.matplotlib: Выравнивание двойных у-осей
Фрагмент кода:
fig, ax1 = plt.subplots()
yLim = [minY, maxY]
xLim = [0, 0.01]
for x in analysisNumbers:
ax1.plot(getData(x), vCoords, **getStyle(x))
ax1.set_yticks(vCoords)
ax1.grid(True, which='major')
ax2 = ax1.twinx()
ax2.set_yticks(ax1.get_yticks())
ax2.set_ylim(ax1.get_ylim())
ax2.set_ylim(ax1.get_ylim())
plt.xlim(xLim[0], xLim[1])
plt.ylim(yLim[0], yLim[1])
plt.minorticks_on()
plt.show()
выход Graph (открыть изображение в новом окне):
Сдвоенные оси должны быть одинаковыми, но они не являются. Их ярлыки одинаковы, но их выравнивание не является (см., Что нули не выстраиваются в линию). Что не так?
, пожалуйста, покажите остальную часть кода (при необходимости пропустите команды построения графика). вы явно управляете осями больше, чем показано на 5 строках. –
@PaulH Я поместил оставшуюся часть соответствующего кода библиотеки matplot, как и требовалось. – user89
Проблема заключается в строке 'plt.ylim', которая применяется только к текущим осям, поэтому они не выстроены в линию, потому что вы указали библиотеке, что они не выстроились в линию. – tacaswell