Matplotlib: несоответствие между первичными и вторичными отметками оси YPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Matplotlib: несоответствие между первичными и вторичными отметками оси Y

Сообщение Гость »


У меня есть набор данных с тремя столбцами: DEPTH, TVD_SCS_interp, Gamma_ray. Я хочу создать график ГЛУБИНЫ (на левой оси Y), TVD_SCS_interp (на правой оси Y) и Gamma_ray (ось X). Я пытался построить график как TVD_SCS против Gamma_ray, так и DEPTH против Gamma_ray, чтобы убедиться, что положения тиков правильны (я ожидал, что линии перекрывают друг друга, поскольку их значения Gamma_ray одинаковы), но я вижу, что существует несоответствие между DEPTH и соответствующими значениями TVD_SCS_interp. как вы видите на изображении ниже. Вот мой код:

ГЛУБИНА = df.DEPTH TVD_SCS_interp = df.TVD_SCS_interp ГАММА_ЛУЧ = df.GR_N # Создаем массив для оси X x = np.array(GAMMA_RAY) # Создаем фигуру и две оси рис = plt.figure(figsize=(8, 165)) gs = GridSpec.GridSpec(1, 1, width_ratios=[0.4]) # Создание подграфиков в пользовательской сетке ax1 = plt.subplot(gs[0]) # Создаём вторую ось Y справа топор2 = топор1.twinx() # Отобразите данные «ГЛУБИНА» на левой оси Y ax1.plot(x, DEPTH, color='b', label='DEPTH') ax1.set_ylabel('ГЛУБИНА', цвет = 'b') ax1.set_ylim(2180, 4076,5) # Отобразите данные DEPTH_TRU на правой оси Y. ax2.plot(x, TVD_SCS_interp, color='r', label='TVD_SCS_interp') ax2.set_ylabel('DEPTH_TRU', color='r') top = df.loc[df['DEPTH'] == 2180, 'TVD_SCS_interp'].values[0] дно = df.loc[df['DEPTH'] == 4076.5, 'TVD_SCS_interp'].values[0] ax2.set_ylim(сверху, снизу) ax2.yaxis.set_major_locator(ticker.MultipleLocator(10)) ax2.yaxis.set_minor_locator(ticker.MultipleLocator(1)) ax1.yaxis.set_major_locator(ticker.MultipleLocator(10)) ax1.yaxis.set_minor_locator(ticker.MultipleLocator(1)) # Установите метки и заголовок ax1.set_xlabel('GAMMA_RAY') ax1.set_title('График по двум осям Y') # Показать легенду ax1.legend(loc='верхний левый') ax2.legend(loc='верхний правый') # Отображение сюжета plt.show()
Изображение


Как создать график со вторичной осью Y, метки делений которой связаны с первой осью Y? Вот пример данных: {'DEPTH':[4398.1, 4398.2, 4398.3, 4398.4, 4398.5, 4398.6, 4398.7], 'TVD_SCS_interp':[4200.23, 4200.98, 4201.4, 4202.12, 4202.89, 4203.3, 4204.21], 'Гамма_луч': [150,155,161,145,165,137,153 ]}
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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