При создании накладываемых гистограмм с двумя различными шкалами высоты с использованием Axes.twinx()
я не могу установить видимые вертикальные линии сетки набора «двойная» ось. Горизонтальные линии работают нормально, хотя. Любые мысли о том, как решить эту проблему?
Ниже приведен пример кода, который иллюстрирует, что я хочу сделать, а что нет. Как видно, вертикальные линии сетки скрыты красными полосами ax2
, тогда как я хочу, чтобы линии сетки были видны через все полосы.
# Create figure and figure layout
ax1 = plt.subplot()
ax2 = ax1.twinx()
# Example data
x = [0, 1, 2, 3, 4, 5]
h1 = [55, 63, 70, 84, 73, 93]
h2 = [4, 5, 4, 7, 4, 3]
# Plot bars
h1_bars = ax1.bar(x, h1, width=0.6, color='darkblue')
h2_bars = ax2.bar(x, h2, width=0.6, color='darkred')
# Set y limits and grid visibility
for ax, ylim in zip([ax1, ax2], [100, 10]):
ax.set_ylim(0, ylim)
ax.grid(True)

Ошибка возникает из-за того, что вертикальные линии сетки ax2
не установлены видимыми. Это можно проверить, установив ax1.grid(False)
, в этом случае имеются только горизонтальные линии сетки.

Я перепробовал все комбинации ax1.xaxis.grid(True)
, ax1.yaxis.grid(True)
, ax2.xaxis.grid(True)
и ax2.yaxis.grid(True)
без какой-либо удачи. Любая помощь в этом вопросе высоко ценится!