Построение двух осей Y на гистограмме для списка списков - PullRequest
1 голос
/ 13 мая 2019

У меня есть два списка списков следующим образом.

list1=[[0,2],[1,4],[2,5]]
list2=[[0,3.5],[1,9],[2,0.2]]

Я хочу иметь гистограмму обоих списков рядом с двумя осями y.Значения оси X одинаковы для обоих (1-ые элементы списков внутри).

Мне удалось разместить их на одном графике, но только с одной осью y со следующим кодом.

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x1,y1 = zip(*list1)
x2,y2 = zip(*list2)
plt.figure()
plt.bar(np.array(x1)-0.15, y1, width = 0.3)
plt.bar(np.array(x2)+0.15, y2, width = 0.3)

plt.xticks(range(min(x1+x2), max(x1+x2)+1))

1 Ответ

0 голосов
/ 13 мая 2019

Вам необходимо создать двойную ось. Это можно сделать с помощью twinx(). Полный ответ ниже

import matplotlib.pyplot as plt
import numpy as np

list1=[[0,2],[1,4],[2,5]]
list2=[[0,3.5],[1,9],[2,0.2]]

x1,y1 = zip(*list1)
x2,y2 = zip(*list2)

fig, ax = plt.subplots()
ax.bar(np.array(x1)-0.15, y1, width = 0.3, color='blue')
ax.set_ylabel('List 1', fontsize=16)

ax2 = ax.twinx()
ax2.bar(np.array(x2)+0.15, y2, width = 0.3, color='red')
ax2.set_ylabel('List 2', fontsize=16)

plt.xticks(range(min(x1+x2), max(x1+x2)+1))
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...