Python / Matplotlib: ax.set_xlim не работает при объединении вспомогательных участков, сетки spe c и ax.twinx () - PullRequest
0 голосов
/ 10 апреля 2020

Я собрал несколько кусков кода, чтобы нарисовать несколько изображений на одной фигуре, но между классами должны быть конфликты или что-то, чего я не получаю. Вот в основном строки, определяющие мою фигуру и графики:

gs = gridspec.GridSpec(2, 1, height_ratios = [1,2], left=0.1, bottom=0.075, right=None, top=0.955)
ax = host_subplot(gs[1], figure = fig, axes_class=AA.Axes)#,sharex=ax3)
ax3 = host_subplot(gs[0], figure=fig, axes_class=AA.Axes)
ax2 = ax.twinx()
ax4 = ax3.twinx()

for axe in [ax,ax3]:
    axe.axis["bottom","left"].label.set_fontsize(24)
    axe.axis["bottom","left"].major_ticklabels.set_size(14)
    axe.set_ylabel('Working.',fontsize=22)
    axe.set_ylim(0,1)
    #axe.set_adjustable('box')
    #axe.set_aspect('auto')
    #axe.set_xbound(lower=-0.85, upper=1.00)
    #axe.set(xlim=(-0.85,1.00))
    axe.set_xlim(-0.85,1.00)
    ax.set_xlabel('This is working')

for axe in [ax2,ax4]:
    offset = 0
    new_fixed_axis = axe.get_grid_helper().new_fixed_axis
    axe.axis["right"] = new_fixed_axis(loc="right", axes=axe,
                                       offset=(offset, 0))
    axe.axis["right"].toggle(all=True)
    axe.set_ylabel("This is working")
    axe.axis["right"].label.set_fontsize(24)
    axe.axis["right"].major_ticklabels.set_size(14)

for axe in [ax,ax3]:
    axe.tick_params(axis='x', which='both', labelsize = 16)
    axe.tick_params(axis='y', which='both', left=True, right=True, labelsize = 16)
    axe.yaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter('%.1f'))
    axe.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(0.2))
    axe.xaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter('%.1f'))
    axe.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(0.2))

Я добавил в комментарий некоторые строки, которые я пробовал из поисков по inte rnet. Я также пытался комментировать и раскомментировать многие другие строки без каких-либо изменений в результате. Я хочу, чтобы для оси х были установлены ограничения -0,85 и 1, но они отображают 0 и 1. Однако построенные данные являются правильными, а это означает, что сбой отображается только на дисплее, а не на фактическом диапазоне данных. Все остальное работает. И до объединения нескольких изображений не было проблем с функцией set_xlim для отдельных графиков.

Заранее спасибо за любую помощь!

РЕДАКТИРОВАТЬ: я забыл упомянуть, что если я изменю значения, пределы оси x фактически изменены, но отображаемые числа по-прежнему неверны. Это означает, что set_xlim что-то делает.

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