一.在同一个统计图同时存在条形图和折线图
1.使用同一个y轴 进行绘制
以一下数据进行分析
截至2022年末中国五大银行绿色信贷余额
#导入所需要使用到的库
import numpy as np
import matplotlib.pyplot as plt
#处理中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] #这里用了Microsoft的微软雅黑
#自变量和因变量
x = ['中国工商银行','中国农业银行','中国银行','中国建设银行','交通银行']
y = [39785,26975,19872,27500,6354]
#绘制图表
plt.figure(figsize=(10,5))
#绘制条形图
plt.bar(range(len(x)),y,color='steelblue',width=0.4)
#绘制折线图
plt.plot(x,y,'o-r')
#图形数据
plt.title('截至2022年末中国五大银行绿色信贷余额')
plt.xticks(range(len(x)),x)
plt.xlabel('中国五大银行')
plt.ylabel('绿色信贷余额')
for i in range(len(x)):
plt.text(x=i-0.1,y=y[i]+10,s='%d'%(y[i]),size=8)
#展示图形
plt.show()
2.使用相同的y轴进行绘制
以一下数据进行分析
农村居民人均可支配收入和人均消费支出水平统计表
#引用的库
import numpy as np
from matplotlib import pyplot as plt
import tkinter
import os
#数据范围
x = np.arange(1992,2023)
y1 = [784.0, 921.6, 1221.0, 1577.7, 1926.1, 2090.1, 2162.0, 2210.3, 2253.4, 2366.4, 2475.6, 2622.2, 2936.4, 3254.9, 3587.0, 4140.4, 4760.62, 5153.17, 5919.01, 6977.3, 7917.0, 8895.91, 9892.0, 10772.0, 12363.0, 13432.0, 14617.0, 16020.7, 17131.0, 18931.0, 20133.0]
y2 = [659.79, 769.65, 1016.81, 1310.36, 1572.08, 1617.0, 1590.33, 1577.42, 1670.13, 1741.09, 1834.31, 1943.3, 2185.0, 2555.4, 2829.02, 3223.85, 3660.68, 3993.45, 4381.82, 5221.1, 5908.0, 6625.53, 8383.0, 9223.0, 10130.0, 10954.5, 12124.0, 13328.0, 13713.0, 15916.0, 16632.0]
#绘制对象
plt.figure(figsize=(12,6))
#处理中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
#绘制条形数据(农村居民人均可支配收入)
plt.bar(x,y1,align='center',color='steelblue',label="人均可支配收入",alpha=1.0,width=0.8)
#标题与提示
plt.title('农村居民人均可支配收入和人均消费支出水平统计表')
plt.xlabel('年份')
plt.ylabel('人均可支配收入 单位:元')
#图标
plt.legend(loc='upper left')
#条形框上的text
for i in range(len(x)):
plt.text(x=x[i]-0.5,y=y1[i]+10,s='%d'%y1[i],size=8)
#线段
ax2 = plt.twinx()
ax2.plot(x,y2,'-r',label='人均消费支出')
ax2.set_ylabel("人均消费支出")
ax2.legend(loc='upper right')
plt.show()
结果展示