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

什么是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

(

)

# 展示图形

展示结果:

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

设置图片的大小,像素

保存到本地

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

调整x y轴的间距

线条的样式

标记出特殊的点

给图片添加水印

设置图片的大小

fig

=

plt

.

figure

(

figsize

=

(

20

,

8

)

,

dpi

=

80

)

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

保存图片

plt

.

savefig

(

"example.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轴的刻度

修改后的图像:

修改步长

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

plt

.

xticks

(

x

[

:

:

2

]

)

结果如下:

设置显示中文

from

pylab

import

mpl

# 设置显示中文

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

设置x y轴及标题的标签

plt

.

xlabel

(

"奇数"

)

# 设置x轴的标签

plt

.

ylabel

(

"偶数"

)

# 设置y轴的标签

plt

.

title

(

"示例"

)

# 设置标题的标签

输出结果如下:

绘制网格

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

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

plt

.

grid

(

)

# 采用默认的透明度

plt

.

grid

(

alpha

=

0.5

)

# 透明度为0.5时的网格

输出结果:

设置图标

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'

)

#添加图标

效果:

散点图的绘制

散点图的绘制方法

散点图绘制采用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

(

)

# 展示图片

效果:

柱图绘制

柱状图的绘制方法为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

(

)

效果:

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

(

)

效果:

间隔柱状图绘制

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

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

(

)

效果:

饼状图绘制

饼状图的绘制含函数为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

(

)

效果:

直方图绘制

随机正太分布直方图

直方图的绘制的函数为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

(

)

效果:

指定期望与均值的直方图

调用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

(

)

效果:

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

  1. python动态横道图_用Python pyecharts v1.x 绘制图形【转】

    关于pyecharts pyecharts是一个用于生成echart(百度开源的数据可视化javascript库)图表的类库.pyecharts 分为 v0.5.x 和 v1.x 两个大版本,版本不兼 ...

  2. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  3. python画二维折线图_利用python画折线图

    # encoding=utf-8 import matplotlib.pyplot as plt from pylab import * #支持中文 mpl.rcParams['font.sans-s ...

  4. python程序画漂亮图_用python画图代码:正弦图像、多轴图等案例

    python画图 正弦图像: #coding:utf-8 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,10,1 ...

  5. python如何截长图_用python实现对元素的长截图

    一.目标 浏览网页的时候,看见哪个元素,就能截取哪个元素当图片,不管那个元素有多长 二.所用工具和第三方库 python ,PIL,selenium pycharm 三.代码部分 长截图整体思路: 1 ...

  6. python画三维折线图_使用Python的matplotlib画折线图,柱状图,三维图

    因为在各种场景下需要各种实验数据的对比图像,有的中还要求dpi,这些在Python中的matplotlib中都可以实现,下面是总结的各种画图命令. 打包文件:https://download.csdn ...

  7. python如何截长图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)...

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

  8. python 画股票走势图_使用Python matplotlib绘制股票走势图

    一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使用心得进行 ...

  9. 用python画爱心动图_编写Python爬虫抓取暴走漫画上gif图片的实例分享

    本文要介绍的爬虫是抓取暴走漫画上的GIF趣图,方便离线观看.爬虫用的是python3.3开发的,主要用到了urllib.request和BeautifulSoup模块. urllib模块提供了从万维网 ...

最新文章

  1. Samba如何配置共享资源
  2. linux用户登陆后无法加在.bashrc
  3. 使用python操作常用的库-kafka
  4. 未来,仅凭几个前端工程师,就能 hold 住一家企业吗?
  5. SQL Server 大数据搬迁之文件组备份还原实战
  6. php factory interface,PHP设计模式之工厂方法*解读
  7. cesium入门示例-3dTiles加载
  8. mybatis传多个参数实例
  9. easyui-textbox锁定按钮不锁定_EU5几乎锁定年度销量冠军,为何北汽新能源却高兴不起来?...
  10. 达内java1707第一阶段_达内Java就业班学习路线图(附视频教程)
  11. Android扫描二维码,生成二维码
  12. Java SSM面试题
  13. 无人驾驶相关文献阅读体会
  14. 网页对联广告代码效果大全
  15. Python统计学11——分位数回归
  16. 我的世界热力膨胀JAVA_我的世界TE4教程热力膨胀能源炉的合成与使用数据
  17. Android App 启动时显示正在加载图片(讲解+源码)
  18. 高中信息技术教资科目三总结
  19. 【原创】Mac电脑如何开启Aptx
  20. Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?

热门文章

  1. mysql.ini环境配置_MySQL配置文件mysql.ini参数详解
  2. C. Number of Pairs
  3. 12伏的蓄电池有几个单格组成_蓄电池的结构和识别
  4. 移植tslib到开发板及部分问题解决
  5. 安装配置opensips过程记录
  6. ubuntu默认root密码
  7. wince6.0中文内核定制
  8. 马逊s3云存储接口_当对象存储“湖”有了强一致性
  9. 提交显示成功但是没有看到文件_如何向RTThread提交一个BSP?
  10. python3.8怎么打开创建_Python 3.8 新功能大揭秘【新手必学】