欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matplotlib同时画柱状图和折线图

程序员文章站 2022-06-19 10:59:55
...

设置窗口大小

fig = plt.figure(figsize=(16, 5))

设置子图

ax1 = fig.add_subplot(111)

准备数据和标签

data = [2806, 3155, 4768, 6321, 3260]
l=[i for i in range(5)]
s = float(sum(data))
percent = [round(data[0] / s * 100, 1),round(data[1] / s * 100, 1),
           round(data[2] / s * 100, 1), round(data[3] / s * 100, 1), round(data[4] / s * 100, 1)]
labels = ['180-189', '190-199', '200-209', '210-219', '220-229']

画图

# 画柱状图
ax1.bar(range(len(data)), data, tick_label=labels, color="deepskyblue", alpha=0.4)
ax1.legend(loc=1)
ax1.set_ylim([0, 8000])
#设置y轴刻度间隔
y_major_locator = plt.MultipleLocator(2000)     
ax1.yaxis.set_major_locator(y_major_locator)

ax1.set_xlabel('rpm')
ax1.set_ylabel('time')
#画折线图
ax2 = ax1.twinx()
ax2.set_ylim([0, 50])
ax2.set_ylabel('占比 %')
ax2.plot(percent, c="blue")
for i,(_x,_y) in enumerate(zip(l,percent)):
    plt.text(_x-0.3, _y + 3, str(percent[i]) + "%",color='brown',fontsize=20,)  #将数值显示在图形上

plt.show()

相关标签: python