График с несколькими осями x и y с использованием Matplotlib

Как я проверял с помощью документа Matplotlib и других ресурсов. Я понял, что при создании нескольких осей они не зависят друг от друга, и мы можем построить несколько линий по разным осям. Но мне нужно построить график, как две оси Y, содержащие температуру как (Цельсия и Фаренгейта), и мне нужно построить только одну единственную линию, связанную с этим, чтобы пользователь 1-й оси мог проверять Цельсий и 2-ю ось Фаренгейта. с осью абсцисс в качестве диапазона (1-24 часа).

Предложения приветствуются.


person Jeenit khatri    schedule 28.02.2017    source источник


Ответы (1)


используйте twinx(), чтобы показать две оси, и преобразуйте y_limits ax1 в градусах Цельсия в y_limits ax2 в градусах Фаренгейта:

import matplotlib.pyplot as plt
from random import randint

x = range(1,24)
y = [randint(0,75) for x in x]

fig, ax1 = plt.subplots()

ax1.plot(x,y)
y_lim  = ax1.get_ylim()

y2_lim = [x*9/5 + 32 for x in y_lim]

ax2 = ax1.twinx()
ax2.set_ylim(y2_lim)

ax1.set_ylabel('deg C')
ax2.set_ylabel('deg F')

plt.show()

введите здесь описание изображения

person Crispin    schedule 28.02.2017
comment
Спасибо за руководство, но пока я это делаю, он делает 1-ю ось Y статической, поэтому, когда я увеличиваю график, измерение не меняет, это любая функция или библиотека, которые необходимо использовать для этого. - person Jeenit khatri; 01.03.2017
comment
Указанный вами способ работает с plt.show (), но не работает с mpld3.show (). Мне нужно построить график на веб-странице. - person Jeenit khatri; 01.03.2017
comment
Да, но есть ли какое-нибудь решение для этой или любой другой библиотеки, которая предоставит мне это? - person Jeenit khatri; 01.03.2017