gpt4 book ai didi

python - 在条形图中绘制列表列表的两个 y 轴

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:15 25 4
gpt4 key购买 nike

我有两个列表,如下所示。

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

我想用两个 y 轴并排绘制两个列表的条形图。两者的 X 轴值相同(内部列表的第一个元素)。

我已经成功地将它们放在同一个图上,但只有一个 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))

最佳答案

您需要创建一个双轴。这可以使用 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

关于python - 在条形图中绘制列表列表的两个 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56116807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com