大家好,我是黄同学
我们之前已经讲述了matplotlib的绘图原理,本文介绍相关图形绘制。
主要是箱线图、散点图、气泡图、雷达图。
《matplotlib绘图的核心原理》
《matplotlib绘图技巧详解(一)》
《matplotlib绘图技巧详解(二)》
《matplotlib绘图技巧详解(三)》
1)作用
箱线图是由一组数据的最大值、最小值、中位数、两个四分位数(上、下四分位数)这五个特征值绘制而成的,它主要的作用是反应原始数据分布的特征,还可以进行多组数据分布特征的比较。
2)语法格式与相关参数说明
① 语法格式
plt.axhline(x,vert,widths,labels)
② 参数说明
3)演示说明
① 绘制8门课程考试成绩的箱线图
df = pd.read_excel(r"C:\Users\黄伟\Desktop\matplotlib.xlsx",sheet_name="直方图")
plt.figure(figsize=(6,5),dpi=100)
labels = ["英语","经济数学","西方经济学","市场营销学","财务管理",
"基础会计学","统计学","计算机应用基础"]
x = [df["英语"],df["经济数学"],df["西方经济学"],df["市场营销学"],
df["财务管理"],df["基础会计学"],df["统计学"],df["计算机应用基础"]]
widths = np.array([0.5]*8)
plt.boxplot(x,labels=labels,vert=True,widths=widths,patch_artist = True,
boxprops={'color':'orangered','facecolor':'pink'})
plt.xticks(rotation=70)
plt.yticks(np.arange(50,101,10))
plt.title("8门课程考试成绩的箱线图",fontsize=15)
plt.tight_layout()
plt.savefig("8门课程考试成绩的箱线图",dpi=300)
结果如下:
② 绘制11名学生考试成绩的箱线图
df = pd.read_excel(r"C:\Users\黄伟\Desktop\matplotlib.xlsx",sheet_name="箱线图1")
plt.figure(figsize=(6,5),dpi=100)
labels = ["学生"+str(i) for i in range(1,12)]
x = [df[1],df[2],df[3],df[4],df[5],df[6],df[7],df[8],df[9],df[10],df[11]]
widths = np.array([0.5]*11)
plt.boxplot(x,labels=labels,vert=True,widths=widths,patch_artist = True,
boxprops={'color':'orangered','facecolor':'pink'})
plt.xticks(rotation=70)
plt.yticks(np.arange(50,101,10))
plt.title("11名学生考试成绩的箱线图",fontsize=15)
plt.tight_layout()
plt.savefig("11名学生考试成绩的箱线图",dpi=300)
结果如下:
散点图与气泡图一起讲是因为它们所用的参数一致。
1)作用
散点图作用:散点图是用二维坐标展示两个变量之间关系的一种图形,强调是衡量两个变量之间的关系。
气泡图作用:气泡图用于展示三个变量之间的关系。与散点图类似,绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则是用气泡的大小来表示。
注意:散点图,气泡图所有的参数一致。
2)语法格式与相关参数说明
① 语法格式
plt.scatter(x,y,s,c,marker,linewidths,edgecolors)
② 参数说明
3)演示说明
① 绘制小麦产量与降雨量的散点图
df = pd.read_excel(r"C:\Users\黄伟\Desktop\matplotlib.xlsx",sheet_name="散点图与气泡图")
plt.figure(figsize=(6,5),dpi=100)
x = df["降雨量"]
y = df["产量"]
plt.scatter(x,y,c="orangered",marker="o",s=100)
plt.title("小麦产量与降雨量的散点图")
plt.xlabel("降雨量")
plt.ylabel("产量")
plt.xticks(np.arange(0,141,20))
plt.yticks(np.arange(0,10001,2000))
plt.tight_layout()
plt.savefig("小麦产量与降雨量的散点图",dpi=300)
结果如下:
② 绘制小麦产量与降雨量和温度的气泡图
df = pd.read_excel(r"C:\Users\黄伟\Desktop\matplotlib.xlsx",sheet_name="散点图与气泡图")
plt.style.use('fivethirtyeight')
plt.figure(figsize=(6,5),dpi=100)
x = df["温度"]
y = df["降雨量"]
colors = y*10
area = y*10
plt.scatter(x,y,c=colors,marker="o",s=area)
plt.title("小麦产量与降雨量和温度的气泡图",fontsize=15)
plt.xlabel("降雨量")
plt.ylabel("产量")
plt.xticks(np.arange(0,26,5))
plt.yticks(np.arange(0,141,20))
plt.grid(True,axis="y")
for xy in zip(x,y):
plt.annotate("{}".format(xy[1]),xy=xy,ha="center",va="center",color="black")
plt.tight_layout()
plt.savefig("小麦产量与降雨量和温度的气泡图",dpi=300)
结果如下:
1)作用
雷达图是显示多个变量的常用图示方法。雷达图在显示或对比各变量的数据总和时十分有用。此外,利用雷达图也可以研究多个样本之间的相似程度。
2)演示说明
① 绘制城乡居民家庭人均消费支出构成的雷达图
plt.figure(figsize=(6,4),dpi=100)
### 有几个构成,n就是几
n = 8
### 数据源序列
data1 = df["城镇居民"]
data2 = df["农村居民"]
### 平分角度
angles = np.linspace(0,2*np.pi,n,endpoint=False)
### 每个角度上对应的标签
labels = ["食品","衣着","家庭设备用品及服务","医疗保健",
"交通通讯","教育文化娱乐服务","居住","杂项商品与服务"]
### 将数据源形成一个闭合的环
data1 = np.append(x1,x1[0])
data2 = np.append(x2,x2[0])
### 将角度形成一个闭合的环
angles = np.append(angles,angles[0])
### 绘图
plt.polar(angles,data1,"r*--",linewidth=1,label="城镇")
plt.polar(angles,data2,"go-",linewidth=1,label="农村")
plt.thetagrids(angles*180/np.pi,labels)
plt.ylim(0,50)
plt.legend(loc=(1,0.9))
plt.tight_layout()
plt.savefig("城乡居民家庭人均消费支出构成的雷达图",dpi=300)
结果如下:
matplotlib的绘图系列更新完毕。
其中,原理一篇,技巧三篇,相关图形绘制两篇,特别推荐收藏。
如果大家觉得文章对你有帮助,欢迎扫描下方二维码关注黄同学的CSDN博客