Matplotlib可视化50图:气泡图(2)

news2024/12/26 1:02:47

导读

本文[1]将学习如何使用 PythonMatplotlib 库通过示例绘制气泡图。

简介

气泡图是散点图的改进版本。在散点图中,有两个维度 x 和 y。在气泡图中,存在三个维度 x、y 和 z。其中第三维 z 表示权重。这样,气泡图比二维散点图在视觉上提供了更多信息。

数据准备

对于本教程,我将使用包含加拿大移民信息的数据集。它拥有从 1980 年到 2013 年的数据,其中包括来自 195 个国家/地区的移民人数。导入必要的包和数据集:

import numpy as np  
import pandas as pd 
df = pd.read_excel('https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DV0101EN/labs/Data_Files/Canada.xlsx',
                       sheet_name='Canada by Citizenship',
                       skiprows=range(20),
                       skipfooter=2)

数据集太大。所以,我不能在这里显示完整截图。让我们看看列的名称。

dataset
dataset

我们不会使用很多列。我只是删除了这些列并将国家名称(“OdName”)设置为索引。

df = df.drop(columns = ['Type''Coverage''AREA''AreaName',      'REG''RegName''DEV''DevName',]).set_index('OdName')
df.head()
example
example

我为这个练习选择了爱尔兰和巴西的数据。没有特殊原因。我随机选择了它们。

Ireland = df.loc['Ireland']
Brazil = df.loc['Brazil']

归一化

有几种不同的方法可以归一化数据。我们将数据归一化以使数据处于相似的范围内。爱尔兰和巴西的移民数据有不同的范围。我需要将它们调整到 0 到 1 的范围内。我只是将爱尔兰数据除以爱尔兰数据系列的最大值。我对巴西的数据系列做了同样的事情。

i_normal = Ireland / Ireland.max()
b_normal = Brazil / Brazil.max()

我们将根据年份绘制爱尔兰和巴西的数据。将年份列在清单上会很有用。

years = list(range(19802014))

可视化

为了看看区别,让我们先绘制散点图。

import matplotlib.pyplot as plt
plt.figure(figsize=(148))
plt.scatter(years, Ireland, color='blue')
plt.scatter(years, Brazil, color='orange')
plt.xlabel("Years", size=14)
plt.ylabel("Number of immigrants", size=14)
plt.show()
scatter
scatter

现在,绘制气泡图。我们必须输入我们之前定义的尺寸。

plt.figure(figsize=(128))
plt.scatter(years, Brazil, 
                  color='darkblue'
                 alpha=0.5,
                 s = b_normal * 2000)
plt.scatter(years, Ireland, 
                  color='purple'
                 alpha=0.5,
                 s = i_normal * 2000,
                 )
plt.xlabel("Years", size=14)
plt.ylabel("Number of immigrants", size=14)
bubble
bubble

我们可以通过气泡的大小来了解移民的数量。气泡越小,移民人数越少。

我们也可以让结果更多彩多姿。为了让它有点意义,我们需要对数据系列进行排序。您很快就会看到原因。

c_br = sorted(Brazil)
c_fr = sorted(France)

现在我们将传递这些值来改变颜色。

plt.figure(figsize=(128))
plt.scatter(years, Brazil, 
                  c=c_br,
                 alpha=0.5,
                 s = b_normal * 2000)
plt.scatter(years, Ireland, 
                  c=c_fr,
                 alpha=0.5,
                 s = i_normal * 2000,
                 )
plt.xlabel("Years", size=14)
plt.ylabel("Number of immigrants", size=14)
result
result

现在我们添加了另一个维度,颜色。颜色随移民数量变化。但是当我们绘制两个变量时,它并没有那么好。因为在这个过程中我们没有明确定义各个变量的颜色。但是当我们在 y 轴上绘制一个变量时,它做得很好。让我们绘制每年来自巴西的移民人数,以了解多年来的趋势。

plt.figure(figsize=(128))
plt.scatter(years, Brazil, 
                  c=c_br,
                 alpha=0.5,
                 s = b_normal * 2000)
plt.xlabel("Years", size=14)
plt.ylabel("Number of immigrants of Brazil", size=14)
color
color

欢迎Star -> 学习目录

更多教程 -> 学习目录


参考资料

[1]

Source: https://towardsdatascience.com/bubble-plots-in-matplotlib-3f0b3927d8f9

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 编译和链接

C语言 编译和链接引言翻译环境运行环境声明一、预定义符号二、#define 符号1. #define 定义标识符2. #define 定义宏宏带来的陷阱宏的两个特殊的使用场景① 使用 #,把一个宏参数变成对应的字符串② 使用 ##,将两个宏参数合并成一个符号宏参数的使用3. #d…

某度旋转验证码

案例地址:aHR0cHM6Ly96aXl1YW4uYmFpZHUuY29tL2xpbmtzdWJtaXQvdXJs 运行结果截图: 抓包分析, 整个流程如下 第一个包,提交参数是ak和时间戳(ak是定值) 返回的参数中,as和tk后面都会用到 点击提交,会弹出验证码,第二个包,请求参数的tk是第一个包返回的, ak同第一…

总算给女盆友讲明白了,如何使用stream流的filter()操作

一、引言 在上一篇文章中《这么简单,还不会使用java8 stream流的map()方法吗?》分享了使用stream的map()方法,不知道小伙伴还有印象吗,先来回顾下要点,map()方法是把一个流中的元素T转换为另外一个新流中的元素R&…

身边的那些信审人员都去哪了?

最近几天看到朋友圈很多信用卡审核中心的老同事(老同学)在秀到深圳9周年,在2013年的时候,大家都是一起通过校招来到了XX银行信用卡中心的信贷审批部,成为了信用卡人工审核员,那时候入职信贷审批部近百人&am…

这个算法不一般,控制拥塞有一手!

数字时代下,远程办公、线上协同成为刚需,直播带货等业务模式盛行,数据流量爆炸式增长,低时延、高流畅的网络传输诉求给数据中心的处理能力带来了极大挑战。RDMA作为一种新型网络传输技术,可大幅提升网络传输实效&#…

HTML期末学生大作业-节日网页作业html+css+javascript

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

详细总结快慢指针的在链表中的常见题型

常见快慢指针题型1.找出链表中间结点2.找到倒数第K个结点3.判断环形链表4.找到环形链表的入口(进阶)5.相交链表1.找出链表中间结点 双指针进阶解法 1.定义两个指针,一个快指针,一个慢指针。 2.快指着一次走两步,慢指针…

基于冲突搜索的多机器人路径规划(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 随着自动化物流系统的发展,移动机器人作为运输系统的关键工具,各方面的技术得到了快速的发展。多移动机器人路径规划是机器人导…

什么是单臂路由技术?

使用vlan trunk可以在同一交换机上划分vlan,从而相同vlan的主机可以通信,不同vlan不能通信,如果连接不同vlan的主机想要通信,怎么办? 不同vlan是属于不同广播域的,配置的是不同的IP网段,针对不…

Notepad++官网地址及使用十六进制查看文件的详细教程

目录 一、概述 二、Notepad官网地址 三、Notepad查看十六进制教程  3.1 在线安装HexEditor插件  3.2 手动安装HexEditor插件 一、概述 Notepad是一个开源的源代码编辑器和记事本替代品,支持多种编程语言和自然语言。在MS Windows环境下运行,它的使用受…

在线数据图表制作-FineReport文本控件

1. 概述 1.1 版本 报表服务器版本 App 版本 功能变更 11.0 -- -- 11.0.2 11.0.54 App支持文本控件 NFC 读卡输入 1.2 应用场景 1.2.1 填报控件 填报报表中可以通过该控件输入文本信息,录入填报的数据,如下图所示: 1.2.2 参数控件 …

51单片机APP GSM短信老人跌倒定位温度异常报警检测GPS地图

实践制作DIY- GC0088-跌倒定位温度异常报警 一、功能说明: 基于STM32单片机设计-跌倒定位温度异常报警 功能介绍: STC15W4K48S4(或者STM32F103CxT6)系列最小系统板OLED显示器SIM800 GSM短信模块1个DS18B20温度测量模块蜂鸣器AD…

我的世界杯 - 诸神黄昏之战

话说长这么大还是头一回主动的去看世界杯比赛... 小时候只是我爷爷他们喜欢看 【CCTV-5】 各种球的比赛,而我我对此毫无兴趣可言,每天只要有时间就沉醉在属于我的 【少儿频道】,喜羊羊、葫芦娃、红猫蓝兔、小娜扎... 而这次可能是因为朋友圈的…

Spring【Bean的作用域与生命周期】

Spring【Bean的作用域与生命周期】🍎一.Bean作用域问题🍒1.1 被修改的 Bean 案例🍒1.2 原因分析🍎二.作⽤域定义🍒2.1Bean 的 6 种作⽤域🍉 2.1.1singleton(单例作⽤域)🍉 2.1.2prototype(原型作…

微服务守护神-Sentinel-概念

引言 书接上篇 微服务应对雪崩的容错方案 ,大概知道微服务容错方案可以从隔离、超时、限流、熔断、降级这几方面入手。好了,理论了解了,那代码落地方案?这是后本篇的主角要登陆场:Sentinel,微服务的守护神…

Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖

Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖 中文名称:木聚糖-马来酰亚胺 英文名称:Xylan-MAL 别称:马来酰亚胺修饰木聚糖,马来酰亚胺-木聚糖 存储条件:-20C,避光&…

编程初学者应该先学C++、Java还是Python?

语言推荐: 第一大类语言包括Java、C、Python和C. 这类语言都是非常通用的语言,它们并不局限于特定的编程平台或用途。(无疑问,你应该熟悉这四种语言。) 第二大类语言包括Java、C#、PHP和Swift。 Java 和PHP是主要的Web开发语言。C# 是微软的编程语言&…

总结《你不知道的JavaScript》三卷小记

先讲一些废话 三本小黄书,工作日都抽出半小时来看看,三本书加来一共700多页的样子。我拖拖延延看了三个月,终于看完了。然后现在抽出时间随便写点,我只是挑一些自己想总结的,给自己一个名词概念,好了废话就…

FreeRTOS移植

FreeRTOS移植一、获取FreeRTOS源码1.1 官网下载1.2 源码路径二、移植2.1 工程内新建分支2.2 分支内添加文件FreeRTOS_COREFreeRTOS_PORTABLE添加完成2.3 添加 FreeRTOSConfig.h 文件2.4 添加 FreeRTOS 头文件路径三、举例3.1 包含头文件3.2 创建任务四、FreeRTOSConfig.h 附录一…

Redis——(7)redis作为mybatis缓存整合二级缓存的整合

1.作为mybits的缓存整合 1)用户第一次访问的时候获取数据库的值,再次访问时直接从缓存中获取数据 2)设置缓存过期时间 3)项目8080端口是对外端口(向外部暴露的端口),区别于内部进程号,查内部端口用ps -ef|…