python数据分析——matplotlib可视化基础

参考资料:活用pandas库

# 导入库
import pandas as pd
import matplotlib.pyplot as plt
# 导入数据
anscombe=pd.read_csv(r"...\seaborn常用数据案例\anscombe.csv")
anscombe.head()

        大多数基本图表的名字以plt.plot开头。

# 创建数据子集
# 只包含数据集Ⅰ
dataset_1=anscombe[anscombe['dataset']=='I']
plt.plot(dataset_1.x,dataset_1.y)

        默认情况下,plt.plot用于画线。如果想用它画圆点,可以给plt.plot传递一个“o”参数。

# 绘制点图
plt.plot(dataset_1.x,dataset_1.y,"o")

        当然,也可以对anscombe数据集的其余数据重复该过程。matplotlib可以指定最终图的维数,根据指定的维数放入更小的子图表。通过这种方式,可以在单幅图中显示结果,而不必分成多幅图。

        subplot方法有3个参数:子图的行数、子图的列数、子图的位置。子图的位置是按顺序编号的,先从左到右,在从上到下。示例如下

# 创建画布,用于放置子图
fig=plt.figure()
# 指定子图的排布方式
# 本例,子图共有2行,每行2幅子图
# 子图有2行2列,位置是1
axes1=fig.add_subplot(2,2,1)
# 子图有2行2列,位置是2
axes2=fig.add_subplot(2,2,2)
# 子图有2行2列,位置是3
axes3=fig.add_subplot(2,2,3)
# 子图有2行2列,位置是4
axes4=fig.add_subplot(2,2,4)

        用上述方法绘制anscombe数据集的4个子图:

# 创建anscombe数据的其余数据集
dataset_2=anscombe[anscombe["dataset"]=="II"]
dataset_3=anscombe[anscombe["dataset"]=="III"]
dataset_4=anscombe[anscombe["dataset"]=="IV"]
# 在上面建立的4个空的轴域中绘制点图
axes1.plot(dataset_1.x,dataset_1.y,"o")
axes2.plot(dataset_2.x,dataset_2.y,"o")
axes3.plot(dataset_3.x,dataset_3.y,"o")
axes4.plot(dataset_4.x,dataset_4.y,"o")

        最后,向各个子图添加标签,并使用tight_layout方法确保各个坐标轴彼此分开。

# 向各幅子图添加子标题
axes1.set_title("dataset_1")
axes2.set_title("dataset_2")
axes3.set_title("dataset_3")
axes4.set_title("dataset_4")
# 为整幅图田间一个大标题
fig.suptitle('Anscombe Data')
# 使用紧凑布局
fig.tight_layout()

        anscombe数据可视化阐明了为什么只看汇总统计值会产生误导。当把这些点可视化后,即使每个数据集有相同的汇总统计值,不同数据集的点之间的关系也相差较大。

        为了让anscombe数据图更完整,可以使用set_xlabel()和set_ylabel()向每个子图添加x轴标签和y轴标签。

        在python有关绘图的内容中,注意区分“axis”(坐标轴)和“axes”(轴域)的区别。

 1、使用matplotlib绘制统计图

# 导入库
import pandas as pd
import matplotlib.pyplot as plt
tips=pd.read_csv(r"...\seaborn常用数据案例\tips.csv")
print(tips.head())

(1)直方图是通过观察单个变量最常用的方法。这些值是经过“装箱”(bin)处理的,这意味着将它们分组后绘制成图来显示变量的分布情况。

fig=plt.figure()
axes1=fig.add_subplot(1,1,1)
axes1.hist(tips["total_bill"],bins=10)
axes1.set_title("Histogram of Total Bill")
axes1.set_xlabel("Frequency")
axes1.set_ylabel("Total Bill")
fig.show()

(2)散点图用于表示一个连续变量随另一个连续变量的变化所呈现的大致趋势。

scatter_plot=plt.figure()
axes1=scatter_plot.add_subplot(1,1,1)
axes1.scatter(tips['total_bill'],tips['tip'])
axes1.set_title("Scatterplot of Total Bill vs Tip")
axes1.set_xlabel("Total Bill")
axes1.set_ylabel("Tip")
scatter_plot.show()

(3)箱线图用于展示一个离散变量随连续变量的变化而呈现的分布状况。

box_plot=plt.figure()
axes1=box_plot.add_subplot(1,1,1)
axes1.boxplot(# 箱线图的第一个参数是数据# 由于要绘制多块数据,因此必须把每块数据放入列表中[tips[tips['sex']=='Female']['tip'],tips[tips['sex']=='Male']['tip']],# 然后可以传入一个可选的标签参数,用来标记传递的数据labels=['Female','Male']
)
axes1.set_title("Boxplot of Tips by Sex")
axes1.set_xlabel('Sex')
axes1.set_ylabel('Tip')
boxplot.show()

(4)如果想要表示更多变量则可以通过颜色或大小来区分。

# 基于性别创建一个带颜色的变量
def recode_sex(sex):if sex=="Female":return 0else:return 1tips['sex_color']=tips['sex'].apply(recode_sex)
scatter_plot=plt.figure()
axes1=scatter_plot.add_subplot(1,1,1)
axes1.scatter(x=tips['total_bill'],y=tips['tip'],# 根据聚餐人数设置点的大小,乘以10以放大不同s=tips['size']*10,# 为sex设置颜色c=tips['sex_color'],# 设置alpha值,增加透明度,以表现重叠的点alpha=0.5
)
axes1.set_title("Total Bill vs Tip Colored by Sex and Sized by Size")
axes1.set_xlabel("Total Bill")
axes1.set_ylabel("Tip")
scatter_plot.show()

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

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

相关文章

图片转word如何转换?

要将图片转换为Word文档,你可以使用以下方法之一: 以上这些方法都可以帮助你将图片中的文本转换为可编辑的Word文档,你可以根据自己的喜好和需求选择其中一种方法来操作。 使用OCR软件或在线工具:有许多OCR(Optical Ch…

【Spring】验证 @ServerEndpoint 的类成员变量线程安全

文章目录 前言猜想来源验证方法Controller 的情况ServerEndpoint 的情况 后记 前言 最近有 websocket 的需求。探索 ServerEndpoint 的类成员变量特点。 这里类比 Controller 讨论 ServerEndpoint 类成员变量是否线程安全。 猜想来源 网上的教程大多数都这么展示程序&#…

Ardupilot开源代码之Rover上路 - 后续1

Ardupilot开源代码之Rover上路 - 后续1 1. 源由2. 问题汇总2.1 问题1:飞控选择2.2 问题2:飞控安装位置和固定2.3 问题3:各种插头、插座配套2.4 问题4:分电板缺陷2.5 问题5:电机编码器接线及正反向问题2.6 问题6&#x…

树莓派python开发

树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…

电商核心技术揭秘55:社群与粉丝经济的结合

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘相关系列文章合集(3) 电商技术揭秘四十一:电商平台的营销系统浅析 电商技术揭秘四十二&#…

Jboss 反序列化 CVE-2017-12149

一、漏洞简介 JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。在/invoker/readonly路径下,攻击者可以构造序列化代码传入服务器进行反序列化,由于没有对反序列化操作进行任何检测,导致攻击者可以执行任意代码。 而jbo…

重发布和路由策略实验(课堂练习)

需求: 将1.1.1.0/24网段(不在OSPF中)重发布到网络中,不允许出现次优路径,实现全网可达。 需求分析: 1、在R1上重发布1.1.1.0/24网段,但是需要过滤192.168.12.0/24和192.168.13.0/24 2、在R2和R3…

考研数学|强化阶段怎么刷《660》《880》《1000》?

强化阶段想要刷好题,首先要选一本适合自己的题集! 一般在强化阶段,大家用多个最多的题集就是660题,880题还有1000题 660题的特点是只训练客观题,虽然题目的质量很高,但是训练面还是比较窄 880题是综合训…

关于DDD和COLA的一些总结和思考

1|0思维:面向对象和面向过程 领域驱动设计本质上是讲的面向对象,但是谈面向对象,始终无法绕开面向过程,所以我们先好好说一下面向过程和面向对象这两个概念。 什么是面向过程呢,其实就是我们学习编程时最初被植入的逻辑…

C++笔记(STL标准库)

1.STL六大部件 容器 Containers分配器 Allocators:帮容器分配内存算法 Algorithms迭代器 Iterators:算法通过迭代器操作容器里的数据,是一种泛化的指针适配器 Adapters:修改或扩展已有类或函数的接口以满足特定的需求仿函数 Func…

《动手学深度学习》V2(11-18)

文章目录 十一、二 模型选择与过拟合和欠拟合1、模型的选择2、过拟合和欠拟合3、估计模型容量4、线性分类器的VC维5、过拟合欠拟合的代码实现 :fire:①生成数据集②定义评估损失③定义训练函数④三阶多项式函数拟合⑤线性函数拟合(欠拟合)⑤高阶多项式函数拟合(过拟合) 十三、权…

【020】基于JavaWeb实现的批报管理系统

项目介绍 基于jspservlet实现的批报管理系统采用B/S架构,该项目设计了一个角色管理员,管理员实现了我的案件、查询统计、项目维护等三大功能模块 技术栈 开发工具:Idea2020.3 运行环境:jdk1.8tomcat9.0mysql5.7 服务端技术:j…

初识C语言——第十八天

循环while/do while while 语法结构 while(表达式) 循环语句; break:在while循环中,break用于永久的终止循环 continue:在while循环中,continue的作用是跳过本次循环continue后面的代码 直接去判断部分,看是否进行下一次循环。 注意事项…

资料总结分享:瀑布图,GESA,生存曲线

目录 瀑布图 GESA 生存曲线 瀑布图 肿瘤的瀑布图是一种常用的数据可视化方式,用于展示个体患者或研究样本的肿瘤基因组学数据,通常包括基因突变、基因拷贝数变异、染色体重排等信息。 颜色编码: 柱状图通常会使用颜色编码来表示不同类型…

GIS数据—1984-2020中国1km人造夜间灯光观测数据

夜间灯光观测数据(Nighttime Light,NTL)是评估人类活动边界的常用手段,目前,该数据已经广泛应用于城市范围、不透水面、基础设施建设等一系列过程。今天,小编要带来的是长时间序列中国区域边界的夜间灯光观测数据。 数…

python-dict序列化的数据为啥前后不一致

前情提要及背景:流式数据的二次处理终结篇-CSDN博客 假如直接将dict进行str,那么编码数据都是一致的,但是在postman上就表现不那么好看,如下: 而之前的显示如下: 其中的差别就是单引号与双引号的差别了。 采用如下方案无疑是最笨的方法了: 在Python中,如果你想将处理…

浅谈SiC MOSFET之MOSFET

1.掺杂后的半导体 P型半导体,多子是空穴,少子是自由电子。 N型半导体,多子是自由电子,少子是空穴。 2.电中性 尽管他们分别有着空穴带正电,自由电子带负电,但是整体上是电中性的。 以P型半导体为例&…

Java开发工具Idea的下载与激活

一,官网下载Idea 建议从官网下载,安全、可靠。 1,点击此处进入官网下载 2,进入官网之后点击[Support],点击浮窗左侧[Download and Install] 3,跳入如下新界面,点击Download进入下载界面 4&am…

【OpenGL的数学01】从窗口空间计算视空间

文章目录 一、说明二、定义三、来自gl_FragCoord四、来自gl_FragCoord的XYZ4.1 从窗口到ndc4.2 从NDC到剪辑4.3 从剪辑到眼睛4.4 GLSL示例 五、从gl_FragCoord的XYZ优化方法 一、说明 本文将解释如何在给定窗口空间顶点位置的情况下重新计算眼空间顶点位置。以及相反的计算。其…

1064 朋友数

solution 给出n个整数&#xff0c;统计可能的位数和&#xff0c;并按升序输出&#xff08;考虑用set实现&#xff09; #include<iostream> #include<set> using namespace std; int main(){set<int> st;int n, x, sum;scanf("%d", &n);while…