中boxplot函数的参数设置_如何在Python中生成图形和图表

cd5eeb1376c508d0347dcabad0a2016f.png

在本章中,我们将学习如何在Python中生成图形和图表,同时将使用函数和面向对象的方法来可视化数据。

Python中常用的一些可视化数据包括以下几种。

  • Matplotlib。
  • Seaborn。
  • ggplot。
  • Geoplotlib。
  • Bokeh。
  • Plotly。

在本章中将使用Matplotlib可视化数据包。此外,还将学习其他有用库的编码。

1 折线图

折线图(Line Chart)是将一系列数据点通过直线连接起来的图表,它提供了一个参数对另一个参数的简单行为,常用于显示随着时间推移的趋势。可以使用折线图来比较相关的特征。

在Jupyter Notebook中生成第一张图表。

首先导入所需要的库。

import matplotlib.pyplot as plt

默认情况下, Matplotlib打开新的窗口以显示结果。如果想在当前Notebook页面看到结果,可以使用如下所示的命令。

%matplotlib inline

其次需要设置两个轴的数据。在x

轴上获取1~15的数据, y

轴选取平均值为50且标准差为10的随机数据。

# 1~15的一维数 a = range(1,16) #使用均值和标准差生成另一数据上的随机整数mean = 50 sigma = 10 b = numpy.random.normal(mean, sigma, 15).astype(int)

现在,只需运行下方的绘图命令,折线图就会出现,结果如图1所示。

plt.plot(a,b)
a9ccabd6fc561a0ada61899a3693ec1e.png

图1

也可以使用下面的代码改变线条的颜色,结果如图2所示。

#定义颜色plt.plot(a,b,color='Red')
184c3fa8b1a52d554ddec45c637de1dd.png

图2

通过ls和lw变量可以改变线的类型及其宽度,结果如图3所示。

#改变线的类型和宽度plt.plot(a,b,ls='--',lw=4)
b69aa80baf95b089246117ee4f69dfec.png

图3

通过下面的命令可以在每个数据点上添加标记,结果如图4所示。

#定义标记和标记宽度plt.plot(a,b,marker='3',mew=10)
fa1a52b159b1bb7a8d98993460b64e7e.png

图4

也可以绘制Pandas DataFrame中的折线图。

sales_in_Delhi = [34,45,33,45,49] sales_in_Pune = [12,13,6,14,10] sales_in_Mumbai = [67,78,90,75,85] sales =pandas.DataFrame({'Delhi':sales_in_Delhi,'Pune':sales_in_Pune,'Mumbai':sales_in_Mumbai})

为了绘制折线图,可以使用以下命令。 xticks和yticks用于设置数轴上的有效范围,结果如图5所示。

sales.plot(xticks=range(1,5),yticks=range(0,100,20))
d2b461ab813766eb224bc3f8c9862f82.png

图5

为不同的线条定义颜色,结果如图6所示。

#定义颜色选项colors = ['Red','Green','Black'] sales.plot(xticks=range(1,5),yticks=range(0,100,20),color=colors)
39c8dff8299e6b2422c4aa4ec77b7c95.png

图6

2 条形图

条形图(Bar Chart)常用于分析分组数据,它一般与分类数据一起使用,用来可视化其他变量对每一类别的影响。条形图为每个类别创建一个矩形。例如,有3个类别的城市,我们希望了解这些城市中的车辆数量。通过使用条形图,可以生成3个矩形(每个矩形代表一个城市),同时高度表示车辆数量。条形图显示了在每个类别的观察次数。

使用下面的代码绘制条形图,结果如图7所示。

plt.bar(a,b)
6aec3f4fd2f59e46d8441d7da0477103.png

图7

也可以从Pandas中生成条形图。默认情况下, plot函数生成折线图。可以指示函数生成条形图,结果如图8所示。

sales.plot(kind='bar')
70c22f92930167578992269ae1fa909c.png

图8

3 饼图

饼图(Pie Chart)将整个数据表示为一个圆。根据不同类别的比例沿圆圈制作切片。例如,对3个城市的车辆进行分析,饼图中展示了一个城市相比于其他城市的车辆比例。如果想在一个统一的规模下比较每个类别,饼图是非常合适的。

通过使用以下命令生成饼图,结果如图9所示。

a = [3,4,5,7,12] plt.pie(a,labels=['AA','BB','CC','DD','EE'])
9e6b36f054ce7cc7be1501c3f1c8bce2.png

图9

定义每个切片的颜色,结果如图10所示。

#为每个类别定义颜色color_list = ['Red','Green','Blue','Yellow','Grey'] plt.pie(a,labels=['AA','BB','CC','DD','EE'],colors=color_list)
9a04efc94e0117f060e177399e753cd0.png

图10

4 直方图

直方图(Histograms)是统计学中广泛应用的图形之一,它能使我们确定连续数据的形状。通过直方图可以检测数据的分布、数据中的离群值和其他有用的属性。

要通过连续数据构造直方图,首先需要创建箱子(bin)并将数据放入适当的箱子中。这不同于与分类变量一起使用的条形图。

例如,有以下数据。

Data = [23, 12, 34, 56, 43, 26, 13, 39, 58, 32, 44 ]

可以按照表1这样定义箱子。

表1

箱子(bin)

数据点

数据点数

>20

12、13

2

20~40

23、34、26、39、32

5

40~60

56、43、58、44

4

使用matplotlib创建直方图。

#用均值和标准差生成随机整数mean = 20 sigma = 5 hist_data = numpy.random.normal(mean, sigma, 500).astype(int) plt.hist(hist_data)

这将产生以下直方图,结果如图11所示。

c852f06e2a2f7cf4ad4df28b93b58153.png

图11

5 散点图

散点图(Scatter Plot)能够表示两组数据点之间的关系。例如,任何人的体重和身高、交通强度和汽车数量、发表的论文数和多年的论文查看量等均可以通过散点图来呈现。

使用下面的代码生成散点图,结果如图12所示。

#用均值和标准差生成随机整数mean = 20 sigma = 5 #生成数据并对其排序scatter_data_1 = numpy.sort(numpy.random.normal(mean, sigma,50).astype(int)) scatter_data_2 = numpy.sort(numpy.random.normal(mean, sigma,50).astype(int)) #散点图plt.scatter(scatter_data_1,scatter_data_2)
1b6f4354532e227cc0e74ac36adab468.png

图12

6 箱线图

箱线图(Box Plot)可以用来理解变量的扩展传播。在箱线图中,矩形顶部边界代表上四分位数(third quantile),底部边界代表下四分位数(first quantile),而盒子中的直线表示中位数(median)。

顶部的垂直线表示最大值,底部的垂直线表示最小值。

通过下面的代码生成方框图,结果如图13所示。

box_data = numpy.random.normal(56, 10, 50).astype(int) plt.boxplot(scatter_data_1)
646f0053ebbcfb5e7e772921980e851e.png

图13

7 采用面向对象的方式绘图

除了使用函数生成图形之外,还可以使用面向对象的方法来生成这种图形。我们定义一个图形对象并不断地添加图元素来丰富它。

首先,创建一个空白图形对象并向其添加轴。然后,在对象内生成绘图并为其指定参数,结果如图14所示。

下面是该方法的代码。

#一个数轴上获取1~15的数字a = range (1,16) #用均值和标准差生成另一数轴上的随机整数mean = 50 sigma = 10 b = numpy.random.normal(mean, sigma, 15).astype(int) #首先,定义图形对象figure_object = plt.figure() #添加轴axes = figure_object.add_axes([.1,.1,1,1]) #添加网格axes.grid() #设置轴标签axes.set_xlabel('X') axes.set_ylabel('Y') #设置坐标轴显示axes.set_xticks(range(1,15)) axes.set_yticks(range(20,100,10)) #设定轴极限axes.set_xlim([1,15]) axes.set_ylim([20,80]) #生成图axes.plot(a,b)
de29e3bbe56f5861f242e69c1a5dee9b.png

图14

在上面的代码中进行了如下的操作。

(1)使用plt.figure()创建了图形对象。

(2)使用add_axes定义数轴。

(3)使用grid()启用网格。

(4)定义了数轴标签。

(5)定义数轴上的值axes (xticks, yticks)。

(6)添加了数轴的下限和上限。

(7)使用plot生成绘图。

也可以创建子图,通过子图对其进行比较。

mean = 20 sigma = 5 c = numpy.random.normal(mean, sigma, 15).astype(int) #创建图形对象fig_sub_object = plt.figure() #图形对象中的两个轴number_of_rows= 1 number_of_cols = 2 fig_sub_object, (axes1,axes2) = plt.subplots(number_of_rows,number_of_cols) axes1.plot(a,b) axes2.plot(a,c)

生成图15所示的图形。

d38f39825c9ac199f9a111680f328351.png

图15

8 Seaborn

Seaborn是基于Matplotlib的Python程序包,它提供了一些高层次的统计图形方法。下面会介绍到一些Seaborn中常用的绘图。

首先导入Seaborn。

import seaborn

然后创建一些随机数据。

#用均值和标准差生成随机整数mean = 25 sigma = 10 dist_data_1 = numpy.random.normal ( mean, sigma, 500).astype(int) dist_data_2 = numpy.random.normal(mean+5, sigma-4, 500).astype(int) dist_data_3 = numpy.random.normal(mean-5, sigma+2, 500).astype(int) dist_data = pandas.DataFrame({"A":dist_data_1,"B":dist_data_2,"C":dist_data_3}) #首先,创建分类数据data = ["Delhi

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

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

相关文章

zabbix入门之监控MySQL

zabbix入门之监控MySQL 这里使用的是zabbix官方自带的MySQL监控模板。 首先确保在被监控主机安装zabbix-agent、zabbix-sender,并且将主机加入监控节点。具体操作请看zabbix添加主机:https://www.cnblogs.com/Smbands/p/11593593.html 修改zabbix自带的M…

css清除浮动的几种方法_CSS 分享几种传统布局方法[上]

本章主要探讨 HTML5 中 CSS 早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的。一.布局模型在早期没有平板和智能手机等移动设备大行其道的时期,Web 页面的设计主要是面向PC 端电脑分辨率展开的。这种分辨率比例比较单…

1-7docke的网络模式

1、Bridge模式bridge 模式是 docker 的默认⽹络模式,不写 –net 参数,就是 bridge 模式。比如使⽤ docker run - p 时工作模式从网上找了一个,如下 例子: run -it -d --name test1 --netbridge centos:v1 bashrun -it -d --name t…

分页的limit_分页场景(limit,offset)为什么会慢

链接:http://t.cn/AidABz08从一个问题说起五年前在腾讯的时候,发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。我就问我师父为什么,他反问“索引场景,mysql中获…

Android游戏开发基础part3--Paint 画笔

游戏开发基础part3--Paint 画笔 Paint画笔是绘图的辅助类,一般它是作为画布的参数来实现相应的效果,Paint类中包含文字与位图的样式、颜色等属性信息。Paint的常用方法如下: 1.setAntiAlias(boolean aa) 作用:设置画笔是否无锯齿 …

jvm 参数_6个提高性能的JVM参数

截止到2020年五月,JVM中仅仅只是关于垃圾回收和内存相关的参数就已经超过600个。如果算上其他方面的参数,JVM相关的总参数能轻松超过1000个。参数太多了,弄得人很懵逼。在这边文章中,我们只选取了7个比较重要,且有用的…

zabbix入门之定义触发器

zabbix入门之定义触发器 触发器的概念 触发器的定义:界定某特定的item 采集到数据的非合理区间或非合理状态。通常为逻辑表达式。 逻辑表达式(阈值):通常用于定义数据的不合理区间,其结果如下: O K (符合条件&#xff…

mybatis字符串转成数字_Python字符串三种格式化输出

字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助。格式化输出:内容按照一定格式要求进行输出。1.使用占位符%输出python2.6版本之前,使用%格式化字符串沿用的是C语言的输出…

eclipse dorado plugin

http://lindows.iteye.com/blog/224004 下载中心 http://www.bstek.com/downloadcenter.htm dorado debug shutcut page time:CtrlShiftF12 bstekIDE Eclipse插件扩展点应用介绍 http://macrochen.iteye.com/blog/138625 BstekIDE_1.2.2_Installer.jar http://www.bstek.com/do…

三个不等_2道真题,讲透「基本不等式」的使用原则 | 真题精讲-11

「不等式」和「最值」之间有着非常天然的强联系;基本不等式有3个非常明显的形式特征;知识点的用法比知识点本身更重要。先发福利:这里有6场「高考数学」系列Live的讲义,全拿去,送给你——《高考数学:免费送…

ajax success function_Django:AJAX(二)

3|0jQuery实现的AJAX最基本的jQuery发送AJAX请求示例&#xff1a;<!DOCTYPE html><html lang"en"> <head> <meta charset"UTF-8"> <title>Title</title> <meta name"viewport" content"widthdevice…

无废话ExtJs 入门教程十[单选组:RadioGroup、复选组:CheckBoxGroup]

继上一节内容&#xff0c;我们在表单里加了个一个单选组&#xff0c;一个复选组: 1.代码如下&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <ht…

python抢票代码_GitHub标星超12K,抢票神器大更新,支持候补

掐指一算&#xff0c;距离国庆黄金周还有半个月的时间!你出行的车票都抢到了吗?图片来自 pexels根据国务院办公厅发布的关于 2019 年部分节假日安排的通知&#xff0c;国庆放假安排是&#xff1a;10 月 1 日至 7 日。想要十一出行的小伙伴们&#xff0c;想必前几天刚经历了一波…

python 开发板 播放音乐_MicroPython开发板:TPYBoard v102 播放音乐实例

0x00前言 前段时间看到TPYBoard的技术交流群&#xff08;群号&#xff1a;157816561&#xff09;里有人问关于TPYBoard播放音乐的问题。最近抽空看了一下文档介绍&#xff0c;着手做了个实验。 0x01实验器材 TPYBoard v102 开发板 1块 耳机或音响 1个 杜邦线 若干 0x02前期准备…

[html] 你知道什么是粘性布局吗?

[html] 你知道什么是粘性布局吗&#xff1f; 中文大概意思&#xff1a; 对象在常态时遵循常规流。它就像是relative和fixed的合体&#xff0c;当在屏幕中时按常规流排版&#xff0c;当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。 个人简介 我是歌…

kafka streams实战 pdf_spring框架实战口试材料

Spring框架自诞生倚赖从来备受开发者青睐&#xff0c;有人亲切的称之为&#xff1a;Spring 百口桶。它包SpringMVC、SpringBoot、Spring Cloud、Spring Data等处理方案。好多研发职员把spring看作心目中最佳的java项目&#xff0c;没有之一。Spring系列包涵非常多的项目&#x…

jquery日期插件_AngularJS 日期时间选择组件(附详细使用方法)

插件简介AngularJS是一款目前非常火的JavaScript脚本库&#xff0c;应用范围十分广阔。今天给大家分享一款基于AngularJS和jQuery的日期时间选择组件&#xff0c;和别的日期选择插件一样&#xff0c;它同样支持年月日的快速定位。另外这款AngularJS日期选择组件还支持时间的选择…

hsv白色h值是多少_ShaderToy系列:HSV

前言这次呢&#xff0c;继续再来看一个iq大神的简单作品&#xff0c;作品虽简单&#xff0c;但是却包含了很多知识点&#xff0c;先放上最终效果&#xff1a;ShaderToy地址&#xff1a;https://www.shadertoy.com/view/MsS3Wc不过本篇改动较大&#xff0c;最终效果与ShaderToy上…

saltstack mysql_saltstack学习五:return及入库_MySQL

return的用法网上太多资料了&#xff0c;利用return把结果存入数据库网上已经有现在的&#xff1a;1、在master端创建数据库&#xff1a;CREATE DATABASE saltDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ci;USE salt;---- Table structure for table jids--DROP …

mysql php 入门_PHP入门教程之PHP操作MySQL的方法分析

本文实例讲述了PHP操作MySQL的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;设置Zend 软件所有 UTF-8 编码设置单个项目 UTF-8 的编码Demo1.phpheader(Content-Type:text/html; charsetutf-8;);//第一步&#xff0c;连接到 Mysql 服务器 3306//第二步参数&#…