Совместное использование вторичной оси Y на фасетных графиках, созданных в циклеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Совместное использование вторичной оси Y на фасетных графиках, созданных в цикле

Сообщение Anonymous »

Я хочу создать фасетный график, перебирая заданное количество строк и столбцов. Все оси на этом графике должны иметь одну и ту же ось Y слева для одного значения (ys) и дополнительную ось Y справа для другого значения (zs).
I придумал решение, которое представляет собой очень урезанный минимальный рабочий пример:

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt

# generate some data
x = np.arange(0, 10, 0.1)
y1 = x**2
y2 = 0.5 * x**2
y3 = 1.5 * x**2
y4 = 2 * x**2
ys = [y1, y2, y3, y4]

z1 = -10 * y1
z2 = -11 * y2
z3 = -10.5 * y3
z4 = -9 * y4
zs = [z1, z2, z3, z4]

cols = 2
rows = 2
k = 0

fig, ax = plt.subplots(rows, cols, sharex=True, sharey=True)
ax2 = ax

for i in list(range(cols)):
for j in list(range(rows)):
ax[i,j].plot(x, ys[k], c='b')
ax[i,j].tick_params(colors='b')

ax2[i,j] = ax[i,j].twinx()
ax2[i,j].plot(x, zs[k], c='r')
ax2[i,j].tick_params(colors='r')

k = k+1
plt.show()
В результате получается следующий график:
Изображение

Здесь ось X и первая ось Y (синяя) хорошо распределяются между графиками, но вторая ось Y не имеет красного цвета.
Я предполагал, что, задав ax2 = ax в приведенном выше коде, он скопирует параметрsharey=True. Увы, это не работает.
Как заставить вторичную ось Y вести себя как первичную ось Y? Это означает, что отметки присутствуют на всех графиках, метки делений (числа) указаны только на самых крайних графиках, а ось Y масштабируется одинаково на всех графиках.
Имейте в виду, что я хотите сохранить итерацию по столбцам и строкам в скрипте, поскольку фактические отображаемые данные содержат более 60 панелей.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ed-in-loop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Совместное использование массивов numpy, созданных дочерними процессами?
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib + Latex Rendering/winx(): неправильный шрифт на вторичной оси Y?
    Гость » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • Неожиданный переворот вторичной оси Y на графике фрейма данных
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib не использует согласованные шрифты, когда uselatex = true для вторичной оси X
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как управлять метками вторичной оси Y цветовой панели
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»