python 二维强度图_荐 python数据分析matplotlib库使用之二维图形绘制

本篇内容会在后期不定时更新

什么是matplotlib

matplotlib是最流行的python底层绘图库,主要做数据可视化图表。

为什么要学习matplotlib

能将数据进行可视化,更直观的呈现

使数据更加客观,更具有说服力

二维图绘制

matplotlib库的基本使用之折线图

导入matplotlib库

from

matplotlib

import

pyplot

as

plt

x

=

range

(

1

,

10

,

2

)

y

=

[

2

,

4

,

6

,

8

,

10

]

plt

.

plot

(

x

,

y

)

# 传入x y ,通过plot绘制折线图

plt

.

show

(

)

# 展示图形

展示结果:

b5d0dce656444b3de7e007b4fac2a834.png

matplotlib还可以设置输出图片的一些格式,如下:

设置图片的大小,像素

保存到本地

描述信息,比如x y轴所要表达的内容

调整x y轴的间距

线条的样式

标记出特殊的点

给图片添加水印

设置图片的大小

fig

=

plt

.

figure

(

figsize

=

(

20

,

8

)

,

dpi

=

80

)

输出的样式就会发生改变:

e7816b01563be8a01f4cefce201fe22d.png

保存图片

plt

.

savefig

(

"example.png"

)

一保存到本地

341be35103c3b242e53cb0e5fa39b54a.png

调整x y轴的刻度

x

=

range

(

1

,

20

,

2

)

y

=

[

2

,

4

,

6

,

8

,

10

,

12

,

14

,

16

,

18

,

20

]

plt

.

xticks

(

x

)

# 修改x轴的刻度

plt

.

yticks

(

y

)

# 修改y轴的刻度

修改后的图像:

4517da65b671efc0698671d3427b3dba.png

修改步长

当x轴的刻度太密集时,可采用修改步长的方法达到疏一点的刻度,当然y轴同样。

plt

.

xticks

(

x

[

:

:

2

]

)

结果如下:

325e979e9968a518d871fe620a6df1d2.png

设置显示中文

from

pylab

import

mpl

# 设置显示中文

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

设置x y轴及标题的标签

plt

.

xlabel

(

"奇数"

)

# 设置x轴的标签

plt

.

ylabel

(

"偶数"

)

# 设置y轴的标签

plt

.

title

(

"示例"

)

# 设置标题的标签

输出结果如下:

b456bf053049d5aff4cdbfcc6c72666f.png

绘制网格

绘制网格可以更加明确的看出数据之间的关系,当然网格也可以调节透明度来更加易于观查数据,

透明度的数值为0-1之间,0表示完全透明,1表示完全不透明。

plt

.

grid

(

)

# 采用默认的透明度

plt

.

grid

(

alpha

=

0.5

)

# 透明度为0.5时的网格

输出结果:

292f4de8ea775ee2b4e5066c57d97898.png

28b0bbce105ef852586893ec56fb41ca.png

设置图标

ax

.

plot

(

z_1

,

label

=

"curb"

)

#立方数据线

ax

.

plot

(

Y_1

,

label

=

"quer"

,

linewidth

=

5

)

#平方数据线

ax

.

plot

(

x

,

x

,

label

=

"liner"

,

linewidth

=

5

)

#直线

ax

.

legend

(

loc

=

'best'

)

#添加图标

效果:

763f6e86fbc5992247a3c70c2f00bafa.png

散点图的绘制

散点图的绘制方法

散点图绘制采用scatter()函数,只需传入x和y的值即可,代码如下:

import

matplotlib

.

pyplot

as

plt

# 导入库

fig

,

ax

=

plt

.

subplots

(

)

# 调用subplots

ax

.

scatter

(

X

,

Y

)

# 传入x和有

fig

.

show

(

)

# 展示数据

还是上面的例子做展示,改为散点图。代码如下:

版本一:

import

matplotlib

.

pyplot

as

plt

fig

,

ax

=

plt

.

subplots

(

)

x

=

[

i

for

i

in

range

(

10

)

]

# 设置x轴数据

Y_1

=

[

i

**

2

for

i

in

range

(

10

)

]

# 设置y轴平方数据

z_1

=

[

i

**

3

for

i

in

range

(

10

)

]

# 设置y轴立方数据

ax

.

scatter

(

x

,

z_1

,

label

=

"curb"

)

# 立方数据线

ax

.

scatter

(

x

,

Y_1

,

label

=

"quer"

,

linewidth

=

5

)

# 平方数据线

ax

.

scatter

(

x

,

x

,

label

=

"liner"

,

linewidth

=

5

)

# 直线

ax

.

legend

(

loc

=

'best'

)

#设置图标

plt

.

savefig

(

"data.png"

)

# 保存图片

fig

.

show

(

)

# 展示图片

版本二:

import

matplotlib

.

pyplot

as

plt

x

=

[

i

for

i

in

range

(

10

)

]

# 设置x轴数据

Y_1

=

[

i

**

2

for

i

in

range

(

10

)

]

# 设置y轴平方数据

z_1

=

[

i

**

3

for

i

in

range

(

10

)

]

# 设置y轴立方数据

plt

.

scatter

(

x

,

z_1

,

label

=

"curb"

)

# 立方数据线

plt

.

scatter

(

x

,

Y_1

,

label

=

"quer"

,

linewidth

=

5

)

# 平方数据线

plt

.

scatter

(

x

,

x

,

label

=

"liner"

,

linewidth

=

5

)

# 直线

plt

.

legend

(

loc

=

'best'

)

#设置图标

plt

.

savefig

(

"散点图.png"

)

# 保存图片

plt

.

show

(

)

# 展示图片

效果:

ef3bc7edaf6342a8b867382b52dffedb.png

柱图绘制

柱状图的绘制方法为bar和barh方法,bar绘制垂直柱状图,barh绘制水平柱状图。

bar柱状图绘制:

from

matplotlib

import

pyplot

as

plt

from

pylab

import

mpl

figure

=

plt

.

figure

(

figsize

=

(

20

,

15

)

)

# 设置图像大小

# 设置字体

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

# 电影名称

title

=

[

'误杀'

,

'流浪地球'

,

'寻梦环游记'

,

'战狼2'

,

'美人鱼'

,

'湄公河行动'

,

'叶问4'

,

'何以为家'

,

'比悲伤更悲\n伤的故事'

,

'中国合伙人'

]

# 电影票房

data

=

[

11.97

,

46.18

,

12.02

,

56.39

,

33.9

,

11.73

,

11.72

,

3.7

,

9.46

,

5.39

]

# 绘制柱状图,传入x和y

plt

.

bar

(

title

,

data

)

# 设置x轴刻度字体的大小

plt

.

xticks

(

fontsize

=

30

)

# 设置y轴刻度字体的大小

plt

.

yticks

(

fontsize

=

30

)

# 设置x轴的标签名称

plt

.

xlabel

(

"票房/亿"

,

fontsize

=

30

)

# 设置y轴的标签名称

plt

.

ylabel

(

"电影"

,

fontsize

=

30

)

# 绘制网格

plt

.

grid

(

alpha

=

0.5

)

# 保存图片

plt

.

savefig

(

"柱状图.png"

)

# 展示图片

figure

.

show

(

)

效果:

b35ca0825c21a16bd91dc69d0a787104.png

barh水平柱状图的绘制。

barh方法:

from

matplotlib

import

pyplot

as

plt

from

pylab

import

mpl

figure

=

plt

.

figure

(

figsize

=

(

20

,

15

)

)

# 设置图像大小

# 设置字体

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

# 电影名称

title

=

[

'误杀'

,

'流浪地球'

,

'寻梦环游记'

,

'战狼2'

,

'美人鱼'

,

'湄公河行动'

,

'叶问4'

,

'何以为家'

,

'比悲伤更悲\n伤的故事'

,

'中国合伙人'

]

# 电影票房

data

=

[

11.97

,

46.18

,

12.02

,

56.39

,

33.9

,

11.73

,

11.72

,

3.7

,

9.46

,

5.39

]

# 绘制柱状图,传入x和y

plt

.

bar

(

title

,

data

)

# 设置x轴刻度字体的大小

plt

.

xticks

(

fontsize

=

30

)

# 设置y轴刻度字体的大小

plt

.

yticks

(

fontsize

=

30

)

# 设置x轴的标签名称

plt

.

xlabel

(

"票房/亿"

,

fontsize

=

30

)

# 设置y轴的标签名称

plt

.

ylabel

(

"电影"

,

fontsize

=

30

)

# 绘制网格

plt

.

grid

(

alpha

=

0.5

)

# 保存图片

plt

.

savefig

(

"柱状图.png"

)

# 展示图片

figure

.

show

(

)

效果:

20a4f42dc7f8870ea28765f31aea1c53.png

间隔柱状图绘制

有时需要将多组数据绘制到同一个图表上,这时就需要间隔各个图表的内容,详情见代码。

from

matplotlib

import

pyplot

as

plt

import

numpy

as

np

from

pylab

import

mpl

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

movie_name

=

[

"千与千寻"

,

"玩具总动员"

,

"黑衣人"

]

# 三天内票房

num1

=

[

7548

,

4013

,

1673

]

num2

=

[

5453

,

1840

,

1080

]

num3

=

[

4383

,

2345

,

1890

]

x

=

np

.

arange

(

len

(

movie_name

)

)

# 设置柱宽

width

=

0.2

# 绘制柱状图,alpha设置透明度,width设置柱宽,label设置图标

plt

.

bar

(

x

,

num1

,

alpha

=

0.5

,

width

=

width

,

label

=

movie_name

[

0

]

)

# num2图加上一个柱宽

plt

.

bar

(

[

i

+

width

for

i

in

x

]

,

num2

,

alpha

=

0.5

,

width

=

width

,

label

=

movie_name

[

1

]

)

# num3图加上两个柱宽

plt

.

bar

(

[

i

+

2

*

width

for

i

in

x

]

,

num3

,

alpha

=

0.5

,

width

=

width

,

label

=

movie_name

[

2

]

)

# 设置x轴的值

x_label

=

[

"第{}天"

.

format

(

i

+

1

)

for

i

in

x

]

# 偏移x轴的值

plt

.

xticks

(

[

i

+

width

for

i

in

x

]

,

x_label

)

# 设置x,y轴的标签,fontsize设置字体的大小

plt

.

ylabel

(

"票房"

,

fontsize

=

15

)

plt

.

xlabel

(

"天数"

,

fontsize

=

15

)

# 设置图标,loc设置图标位置

plt

.

legend

(

loc

=

"best"

)

# 保存图片

plt

.

savefig

(

"间隔柱状图.png"

)

# 展示图表

plt

.

show

(

)

效果:

85e1a6814d29f890bee4d705aedd624e.png

饼状图绘制

饼状图的绘制含函数为pie(),传入相应比例即可,具体参数见代码。

代码如下:

from

matplotlib

import

pyplot

as

plt

from

pylab

import

mpl

# 设置显示中文

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

# 男生人数

man

=

72351

# 女生人数

woman

=

81345

# 人妖人数

mid_person

=

2300

# 计算男生比例

man_perc

=

man

/

(

man

+

woman

+

mid_person

)

# 计算女生比例

woman_perc

=

woman

/

(

man

+

woman

+

mid_person

)

# 计算人妖比例

mid_perc

=

mid_person

/

(

man

+

woman

+

mid_person

)

# 添加名称

labels

=

[

'男'

,

'女'

,

"人妖"

]

# 修改颜色

colors

=

[

'blue'

,

'orange'

,

'red'

]

# 绘制饼状图,传入的为列表。explode为饼状图添加分裂效果,传入参数为元组,第一个参数为可为0,第二个参数分割距离。autopct为饼状图添加显示比例。

paches

,

texts

,

autotexts

=

plt

.

pie

(

[

man_perc

,

woman_perc

,

mid_perc

]

,

colors

=

colors

,

labels

=

labels

,

explode

=

(

0

,

0

,

0.02

)

,

autopct

=

'%0.1f%%'

)

# 修改字体颜色

for

text

in

texts

+

autotexts

:

text

.

set_color

(

"black"

)

# 设置字体大小

for

text

in

texts

+

autotexts

:

text

.

set_fontsize

(

15

)

plt

.

savefig

(

"饼状图.png"

)

# 展示图像

plt

.

show

(

)

效果:

974e02efac8f9d397c739f043e4a1358.png

直方图绘制

随机正太分布直方图

直方图的绘制的函数为hist(),传入相应的正太值即可。详细见代码。

代码如下:

from

matplotlib

import

pyplot

as

plt

import

numpy

as

np

# 生成1000个标志的正太分布随机

x

=

np

.

random

.

randn

(

1000

)

# 修改柱的宽度,使用bins,值越小,图像越宽。

plt

.

hist

(

x

,

bins

=

100

)

plt

.

savefig

(

"随机正太分布直方图.png"

)

plt

.

show

(

)

效果:

a48d9ac70ffe90effc01c2f289246e65.png

指定期望与均值的直方图

调用numpy库中的np.random.normal()即可指定期望与均值,详情见代码。

代码如下:

from

matplotlib

import

pyplot

as

plt

import

numpy

as

np

# 使用np.random.normal()指定期望与均值的正太分布,0为期望,0.8为均值,1000为生成的个数。

# 绘制三个指定期望与均值的正太分布

x

=

np

.

random

.

normal

(

0

,

0.8

,

1000

)

y

=

np

.

random

.

normal

(

0

,

0.5

,

1000

)

z

=

np

.

random

.

normal

(

0

,

0.7

,

1000

)

# 传入关键字参数,为字典形式。**kwargs为包裹关键字参数

kwargs

=

dict

(

bins

=

100

,

alpha

=

0.5

)

# 绘制直方图

plt

.

hist

(

x

,

**

kwargs

)

plt

.

hist

(

y

,

**

kwargs

)

plt

.

hist

(

z

,

**

kwargs

)

# 保存图片

plt

.

savefig

(

"指定期望与均值直方图.png"

)

# 展示图片

plt

.

show

(

)

效果:

ee0517e77e099785402b6aa85134134e.png

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

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

相关文章

python数据爬虫代码_python如何示例爬虫代码

python爬虫代码示例的方法:首先获取浏览器信息,并使用urlencode生成post数据;然后安装pymysql,并存储数据到MySQL即可。python爬虫代码示例的方法:1、urllib和BeautifuSoup获取浏览器信息from urllib import requestre…

kali linux查看网卡_CentOS7.6安装无线网卡驱动|Linux如何安装网卡驱动|Linux如何让配置网卡...

此前提到,Thinkpad E490安装CentOS7.6遇到内核崩溃的问题,解决之后,安装CentOS7.6操作系统成功。安装时发现,系统能够检测到有线网卡,但无法检测到无线网卡,说明CentOS7.6对此无线网卡的支持不足&#xff0…

python本地编译器_Python学习札记(0)——Python开发环境搭载及推荐几款Python编译器...

1、进入网址:http://www.python.org/download/#id102、选择版本:其中有两个Python版本,一个为3.0以上版本,一个为2.7版本,主要区别有一些特定的软件只支持2.7版本其中的两个windows版本为:Python 3.3.3 Win…

如何将mysql的数据库渲染到页面_vue.js实现数据库的JSON数据输出渲染到html页面功能示例...

本文实例讲述了vue.js实现数据库的JSON数据输出渲染到html页面功能。分享给大家供大家参考,具体如下:1、首先通过json.php把数据库给输出为json格式的数据[{"id":1,"resname":"百度","resimg":"http://www…

java模块_Java 9 揭秘(2. 模块化系统)

文 by / 林本托Tips做一个终身学习的人。在此章节中,主要介绍以下内容:在JDK 9之前Java源代码用于编写,打包和部署的方式以及该方法的潜在问题JDK 9中有哪些模块如何声明模块及其依赖关系如何封装模块什么是模块路径什么是可观察的模块如何打…

java reader_Java之字符输入流,Reader类的简单介绍

各位小伙伴们大家好,在之前的文章中,小编介绍了Java之文件复制的简单介绍,多是一些关于字节的知识,这次小编要介绍的是字符输入流Reader类,具体如下:java.io.Reader:字符输入流,是字符输入流的最…

java redis brpop_Redis实战 | 5种Redis数据类型详解

我们知道Redis是目前非常主流的KV数据库,它因高性能的读写能力而著称,其实还有另外一个优势,就是Redis提供了更加丰富的数据类型,这使得Redis有着更加广泛的使用场景。那Redis提供给用户的有哪些数据类型呢?主要有&…

java 线程 单例_多线程单例模式

多线程单例模式原文:https://blog.csdn.net/u011726005/article/details/823565381. 饿汉模式使用饿汉模式实现单例是十分简单的,并且有效避免了线程安全问题,因为将该单例对象定义为static变量,程序启动即将其构造完成了。代码实…

java 中间件 pdf_Java中间件技术及其应用开发 PDF扫描版[51MB]

Java中间件技术及其应用开发 内容提要:本书使用丰富的案例介绍了使用Java技术进行中间件编程的方法及技巧,包括JSP、JavaServlet、JDBC数据库开发、使用JavaMail开发邮件应用程序、RMI(远程方法调用)、EnterpriseJavaBeans开发、使用CORBA以及JavaIDL进行…

java循环左一_左旋转字符串(Java)-循环Index方式

左旋转字符串(Java)-循环Index方式题目要求​ 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S”…

java车次信息_从火车站车次公示栏来学Java读写锁

Java多线程并发之读写锁本文主要内容:读写锁的理论;通过生活中例子来理解读写锁;读写锁的代码演示;读写锁总结。通过理论(总结)-例子-代码-然后再次总结,这四个步骤来让大家对读写锁的深刻理解。本篇是《凯哥(凯哥Java…

java构建xml参数_Java中使用XML创建EMAIL模板

邮件模板让我们来看看邮件模板的格式。模板是XML文件,它包含一个根元素和一系列根的子元素。根元素是。必要的子元素是, , 和 。可选的子元素是 , , 和 。如果你使用过邮件系统,那么你可以推导出这些元素实际包含的内容。可选的元素有多个实例&#xff0…

java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件

问题:多个*.java文件编译*.java文件依赖其他的jar包如下文件结构:F:\jar_prachild--child01--MyChild.java--child02--MyChild.javaparent--MyParent.javaMyParent.javapackage parent;public class MyParent{public void show(){System.out.println(&qu…

java11创建项目_2019-04-11 使用IDEA创建SpringBoot项目

一. 使用IDEA新建项目根据需要选择starter这样使用IDEA搭建的一个SpringBoot项目就可以了。同样可以通过https://start.spring.io/构建。二. 结构分析1.Springboot01Application:运行Springboot01Application就可以启动Spring Boot工程。2. pom.xml中则配置好了选中的starter的…

微博php sdk,php sdk微博第三方授权登入简单使用

简单说一下OAuth协议:OAUTH是一种开放的协议,为桌面、手机或web应用提供了一种简单的,标准的方式去访问需要用户授权的API服务。下面我们去微博开发者平台登入微博。如图填写信息:网站接入->创建新应用填写信息后可以拿到微博给…

php 堵塞 消息队列,PHP的并发处理

PHP如何处理并发什么是进程、线程、协程进程 Process计算机中的程序关于某数据集合上的一次运行活动,“一个执行中的程序”系统进行资源分配和调度的基本单位三态模型:多道程序系统中,进程在处理器上交替运行,状态不断地发生变化运…

python执行文件函数,python如何运行函数

运行Python的函数,只需要调用函数名,在传递参数就可以,不必关心函数体内部的代码块。函数是带名字的代码块,用于完成具体的工作需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调…

php小白书,php小白的自学第一天

虽然我还没有学会Python,但是已经开学了……然后老师要验收以php编写的网页……(wdnmd )这两天先把这个网页设计处理了,Python也会学,Linux还没开始,web更是啥也不会……谁再和我说大学比高中轻松我跟他拼命(听说只要先熟悉了HTML…

linux配置文件为yum,yum的配置文件说明

1、网上的可供yum的链接,要求里面有repodata目录,该目录就是分析 RPM 软体后所产生的软体属性相依资料放置处。2、配置文件:/etc/yum.repos.d/CentOS-Base.repo,也可以此目录下建别的以.repo后缀的文件就行[base]:代表…

linux操作系统权限详解,Linux权限详解

权限权限是操作系统用来限制对资源访问的机制。权限一般分为读、写、执行。每个用户都有特定的权限、所属用户、所属组,通过这样的机制来限制哪些用户、哪些组可以对待特定的文件进行怎么样的操作。每个进程都是以某个用户的身份运行,所以进程的权限与该…