专栏首页凹凸玩数据matplotlib相关图形绘制(二)

matplotlib相关图形绘制(二)

大家好,我是黄同学

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

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

《matplotlib绘图的核心原理》

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

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

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

1、绘制箱线图

1)作用

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

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

① 语法格式

plt.axhline(x,vert,widths,labels)

② 参数说明

  • x表示要绘制图型的数据源
  • vert表示箱线图方向,如果为True则表示纵向;如果为False则表示横向;默认为True。
  • 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)

结果如下:

2、绘制散点图与气泡图

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

1)作用

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

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

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

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

① 语法格式

plt.scatter(x,y,s,c,marker,linewidths,edgecolors)

② 参数说明

  • x,y表示散点的坐标。
  • s表示散点的大小。
  • c表示每个点的颜色。
  • makers表示每个点的标记。
  • 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)

结果如下:

3、雷达图

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博客

本文分享自微信公众号 - 凹凸数据(alltodata),作者:黄伟呢

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • matplotlib相关图形绘制(一)

      折线图用于显示随时间或有序类别而变化的趋势。折线图其实是由多个点连接在一起得到了,当点足够多的时候,折线图就变成了平滑的曲线。

    朱小五
  • matplotlib绘图技巧详解(三)

    我们之前已经讲述了matplotlib的绘图原理,陆续会更新绘图技巧、相关图形绘制。

    朱小五
  • 实战 | Python爬取B站柯南弹幕+Gephi梳理主线剧情

    利用Chrome浏览器抓包可知,B站的弹幕文件以XML文档式进行储存,如下所示(共三千条实时弹幕)

    朱小五
  • opencv 4 -- 图像平滑与滤波

    这是由一个归一化卷积框完成的。 他只是用卷积框覆盖区域所有像素的平 均值来代替中心元素

    wust小吴
  • 初识人工智能

    刚开始接触人工智能的时候,大家肯定看到了一些名词:人工智能、深度学习、机器学习...what??哈哈,先来简单的给大家解释一下这三者的区别,再来谈论其他的问题。...

    小闫同学啊
  • Python进阶之Matplotlib入门(三)

    Matplotlib是Python的画图领域使用最广泛的绘图库,它能让使用者很轻松地将数据图形化以及利用它可以画出许多高质量的图像,是用Python画图的必备技...

    HuangWeiAI
  • 局部加权线性回归(LWLR)

    线性回归的一个问题是很可能出现欠拟合现象。局部加权线性回归可以解决线性回归中的欠拟合现象。在该算法中,我们对更靠近待预测点的点赋予更高的权重。权重类型可以自由选...

    用户6021899
  • Spring Boot2 系列教程(十九)Spring Boot 整合 JdbcTemplate

    在 Java 领域,数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate 、有 MyBatis,还有 JPA,在这些方案中,最简单的就...

    江南一点雨
  • Spring Boot数据持久化之JdbcTemplate

    在Java领域,数据持久化有几个常见的方案,有Spring自带的JdbcTemplate、有MyBatis,还有JPA,在这些方案中,最简单的就是Spring自...

    江南一点雨
  • 一个奇怪的链接问题

    链接是代码生成可执行文件中一个非常重要的过程。我们在使用一些库函数时,有时候需要链接库,有时候又不需要,这是为什么呢?了解一些链接的基本过程,能够帮助我们在编译...

    编程珠玑

扫码关注云+社区

领取腾讯云代金券