matplotlib绘制四个子图

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
plt.rcParams['font.family'] = ['SimHei']    #因为图中有中文避免中文显示乱码

ax1=plt.subplot(2,2,1)                      #添加子图参数第一个和第二个分别是子图的行数和列数,第三个参数是子图的序号
ax2=plt.subplot(2,2,2)
ax3=plt.subplot(2,2,3)
ax4=plt.subplot(2,2,4)

# 第一个子图绘制散点图
datas=pd.read_csv('data.csv',encoding='gbk')
datas1=datas['shijian']
datas2=datas['天津']
ax1.scatter(datas1,datas2,c='m',marker='d')
ax1.set_xlabel('shijian')                   #设置第一个子图的x轴标签
ax1.set_ylabel('天津')                       #设置第一个子图的y轴标签
plt.tight_layout()                          #使子图适应作图区域避免坐标轴标签信息显示混乱

#第二个字图绘制气泡图
datas=pd.read_csv('data.csv',encoding='gbk')
datas1=datas['shijian']
datas2=datas['全国']
pop=[x/100 for x in datas2]
color=datas2*10
ax2.scatter(datas1,datas2,s=pop,c=color)     
ax2.set_xlabel('shijian')
ax2.set_ylabel('全国数据',c='r')
plt.tight_layout()

#第三个子图绘制分组柱状图
datas = pd.read_excel('data.xlsx')
times=datas['时间']
data1=datas['二氧化硫年平均浓度']
data2=datas['二氧化氮年平均浓度']
x=np.arange(9)
width = 0.3
ax3.bar(x - width / 2, data1, width=width, color='magenta', label='二氧化硫平均浓度')
ax3.bar(x + width / 2, data2, width=width, color='skyblue', label='二氧化硫平均浓度')
ax3.tick_params(axis='x',width=2,colors='b',rotation=50,labelsize=10)
ax3.legend()
ax3.set_xlabel('时间')
ax3.set_ylabel('浓度')
plt.tight_layout()

#第四个子图绘制小提琴图
sns.set_style("darkgrid",{"font.sans-serif":['simhei','Droid Sans Fallback']})
datas = pd.read_excel('数据集.xlsx')
datas['RAD'].value_counts()
sns.violinplot(x=datas['RAD'],y=datas['TAX'],data=datas,linewidth=2,scale='count',paltte='RdBu')
ax4.set_xlabel('RAD')
ax4.set_ylabel('TAX')
plt.tight_layout()
plt.show()

matplotlib绘制四个子图_第1张图片

 

#代码可能有些参数,还有一些地方未解释,作图风格纯属个人随意添加的,如有错误,请参阅的各位多多提意见

你可能感兴趣的:(matplotlib绘制四个子图)