前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matplotlib相关图形绘制(二)

matplotlib相关图形绘制(二)

作者头像
朱小五
发布2020-03-05 11:46:59
8980
发布2020-03-05 11:46:59
举报
文章被收录于专栏:凹凸玩数据凹凸玩数据

大家好,我是黄同学

我们之前已经讲述了matplotlib的绘图原理,本文介绍相关图形绘制。

主要是箱线图、散点图、气泡图、雷达图。

《matplotlib绘图的核心原理》

《matplotlib绘图技巧详解(一)》

《matplotlib绘图技巧详解(二)》

《matplotlib绘图技巧详解(三)》

1、绘制箱线图

1)作用

箱线图是由一组数据的最大值、最小值、中位数、两个四分位数(上、下四分位数)这五个特征值绘制而成的,它主要的作用是反应原始数据分布的特征,还可以进行多组数据分布特征的比较。

2)语法格式与相关参数说明

① 语法格式

代码语言:javascript
复制
plt.axhline(x,vert,widths,labels)

② 参数说明

  • x表示要绘制图型的数据源
  • vert表示箱线图方向,如果为True则表示纵向;如果为False则表示横向;默认为True。
  • widths表示箱线图的宽度。
  • labels表示箱线图的标签。

3)演示说明

① 绘制8门课程考试成绩的箱线图

代码语言:javascript
复制
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名学生考试成绩的箱线图

代码语言:javascript
复制
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)

结果如下:

2、绘制散点图与气泡图

散点图与气泡图一起讲是因为它们所用的参数一致。

1)作用

  散点图作用:散点图是用二维坐标展示两个变量之间关系的一种图形,强调是衡量两个变量之间的关系。

  气泡图作用:气泡图用于展示三个变量之间的关系。与散点图类似,绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则是用气泡的大小来表示。

  注意:散点图,气泡图所有的参数一致。

2)语法格式与相关参数说明

① 语法格式

代码语言:javascript
复制
plt.scatter(x,y,s,c,marker,linewidths,edgecolors)

② 参数说明

  • x,y表示散点的坐标。
  • s表示散点的大小。
  • c表示每个点的颜色。
  • makers表示每个点的标记。
  • linewidths表示每个散点的线宽。
  • edgecolors表示每个散点外轮廓的颜色。

3)演示说明

① 绘制小麦产量与降雨量的散点图

代码语言:javascript
复制
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)

结果如下:

② 绘制小麦产量与降雨量和温度的气泡图

代码语言:javascript
复制
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)

结果如下:

3、雷达图

1)作用

  雷达图是显示多个变量的常用图示方法。雷达图在显示或对比各变量的数据总和时十分有用。此外,利用雷达图也可以研究多个样本之间的相似程度。

2)演示说明

① 绘制城乡居民家庭人均消费支出构成的雷达图

代码语言:javascript
复制
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博客

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 凹凸数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、绘制箱线图
  • 2、绘制散点图与气泡图
  • 3、雷达图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档