Сюжет в разных масштабах Python

У меня есть следующие данные:

data1 = ['2', '3', '5', '8', '12', '25', '18', '6', '2', '4', '5', '4', '2']
data2 = ['6', '8', '6', '10', '20', '95', '110', '67', '4', '7', '8', '43', '22']
ratio = [0.33, 0.38, 0.83, 0.8, 0.6, 0.26, 0.16, 0.09, 0.5, 0.57, 0.62, 0.09, 0.09]

Как построить соотношение на оси x с полосой, а значения A и B находятся на оси Y с разным масштабом?

Я попытался использовать приведенный ниже код, но не смог получить гистограмму для соотношения по оси x и data1 и data2 по оси y.

from matplotlib import pyplot as plt

data1 = ['2', '3', '5', '8', '12', '25', '18', '6', '2', '4', '5', '4', '2']
data2 = ['6', '8', '6', '10', '20', '95', '110', '67', '4', '7', '8', '43', '22']
ratio = [0.33, 0.38, 0.83, 0.8, 0.6, 0.26, 0.16, 0.09, 0.5, 0.57, 0.62, 0.09, 0.09]

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(ratio, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()  # instantiate a second axes that shares the same x-axis

color = 'tab:blue'
ax2.set_ylabel('sin', color=color)  # we already handled the x-label with ax1
ax2.plot(ratio, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout()  # otherwise the right y-label is slightly clipped
plt.show()

0 ответов

Другие вопросы по тегам