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
(
)
# 展示圖形
展示結果:
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库使用之二维图形绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bdss.exe是什么进程 bdss进程
- 下一篇: python创建nc文件_如何pytho