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

(

)

# 展示图形

展示结果:

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

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

设置图片的大小,像素

保存到本地

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

调整x y轴的间距

线条的样式

标记出特殊的点

给图片添加水印

设置图片的大小

fig

=

plt

.

figure

(

figsize

=

(

20

,

8

)

,

dpi

=

80

)

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

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

保存图片

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

修改后的图像:

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

修改步长

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

plt

.

xticks

(

x

[

:

:

2

]

)

结果如下:

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

设置显示中文

from

pylab

import

mpl

# 设置显示中文

mpl

.

rcParams

[

'font.sans-serif'

]

=

[

'FangSong'

]

设置x y轴及标题的标签

plt

.

xlabel

(

"奇数"

)

# 设置x轴的标签

plt

.

ylabel

(

"偶数"

)

# 设置y轴的标签

plt

.

title

(

"示例"

)

# 设置标题的标签

输出结果如下:

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

绘制网格

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

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

plt

.

grid

(

)

# 采用默认的透明度

plt

.

grid

(

alpha

=

0.5

)

# 透明度为0.5时的网格

输出结果:

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

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

设置图标

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'

)

#添加图标

效果:

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

散点图的绘制

散点图的绘制方法

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

(

)

# 展示图片

效果:

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

柱图绘制

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

(

)

效果:

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

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

(

)

效果:

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

间隔柱状图绘制

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

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

(

)

效果:

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

饼状图绘制

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

(

)

效果:

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

直方图绘制

随机正太分布直方图

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

(

)

效果:

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

指定期望与均值的直方图

调用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库使用之二维图形绘制_第15张图片

你可能感兴趣的:(python,二维强度图)