前言
matplotlib 是 python 的绘图库。 它可与 numpy 一起使用,提供了一种有效的 matlab 开源替代方案。 它也可以和图形工具包一起使用,如 pyqt 和 wxpython。
用matplotlib绘制一些大家比较熟悉又经常混淆的统计图形,掌握这些统计图形可以对数据可视化有一个深入理解。
windows 系统安装 matplotlib
进入到 cmd 窗口下,执行以下命令:
1
2
|
python - m pip install - u pip setuptools
python - m pip install matplotlib
|
linux 系统安装 matplotlib
可以使用 linux 包管理器来安装:
debian / ubuntu:
1
|
sudo apt - get install python - matplotlib
|
fedora / redhat:
1
|
sudo yum install python - matplotlib
|
mac osx 系统安装 matplotlib
mac osx 可以使用 pip 命令来安装:
1
|
sudo python - mpip install matplotlib
|
安装完后,你可以使用 python -m pip list 命令来查看是否安装了 matplotlib 模块。
1
2
|
$ python - m pip list | grep matplotlib
matplotlib ( 1.3 . 1 )
|
1.函数bar()--用于绘制柱状图
在x轴上绘制定性数据的分布特征
1
2
3
4
5
6
7
8
9
10
11
12
|
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcparams[ "font.sans-serif" ] = [ "simhei" ]
mpl.rcparams[ "axes.unicode_minus" ] = false
x = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]
y = [ 3 , 1 , 4 , 5 , 8 , 9 , 7 , 2 ]
plt.bar(x,y,align = "center" ,color = "c" ,tick_label = [ "q" , "a" , "c" , "e" , "r" , "j" , "b" , "p" ],hatch = "/" )
plt.xlabel( "箱子编号" )
plt.ylabel( "箱子重量(kg)" )
plt.show()
|
2.
2、函数barh()--用于绘制条形图
在y轴上绘制定性数据的分布特征
1
2
3
4
5
6
7
8
9
10
11
12
|
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcparams[ "font.sans-serif" ] = [ "simhei" ]
mpl.rcparams[ "axes.unicode_minus" ] = false
x = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]
y = [ 3 , 1 , 4 , 5 , 8 , 9 , 7 , 2 ]
plt.barh(x,y,align = "center" ,color = "c" ,tick_label = [ "q" , "a" , "c" , "e" , "r" , "j" , "b" , "p" ],hatch = "/" )
plt.xlabel( "箱子编号" )
plt.ylabel( "箱子重量(kg)" )
plt.show()
|
3.
3、函数hist()--用于绘制直方图
在x轴上绘制定量数据的分布特征
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcparams[ "font.sans-serif" ] = [ "simhei" ]
mpl.rcparams[ "axes.unicode_minus" ] = false
#set test scores
boxweight = np.random.randint( 0 , 10 , 100 )
x = boxweight
#plot histogram
bins = range ( 0 , 11 , 1 )
plt.hist(x,bins = bins,
color = "g" ,
histtype = "bar" ,
rwidth = 1 ,
alpha = 0.6 )
#set x,y-axis label
plt.xlabel( "箱子重量(kg)" )
plt.ylabel( "销售数量(个)" )
plt.show()
|
4.函数pie()--用于绘制饼图
绘制定性数据的不同类别的百分比
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcparams[ "font.sans-serif" ] = [ "simhei" ]
mpl.rcparams[ "axes.unicode_minus" ] = false
kinds = "简易箱" , "保温箱" , "行李箱" , "密封箱"
colors = [ "#e41a1c" , "#377eb8" , "#4daf4a" , "#984ea3" ]
soldnums = [ 0.05 , 0.45 , 0.15 , 0.35 ]
#pie chart
plt.pie(soldnums,
labels = kinds,
autopct = "%3.1f%%" ,
startangle = 60 ,
colors = colors)
plt.title( "不同类型箱子的销售数量占比" )
plt.show()
|
5.函数polar()--用于绘制极线图
在极坐标图上绘制折线图
1
2
3
4
5
6
7
8
9
10
11
12
|
import matplotlib.pyplot as plt
import numpy as np
barslices = 12
theta = np.linspace( 0.0 , 2 * np.pi,barslices,endpoint = false)
r = 30 * np.random.rand(barslices)
plt.polar(theta,r, #theta每个标记所在射线与极径的夹角,r每个标记到原点的距离
color = "chartreuse" ,
linewidth = 2 ,
marker = "*" ,
mfc = "b" ,
ms = 10 )
plt.show()
|
6.函数scatter()--用于绘制气泡图
二维数据借助气泡图大小展示三维数据
1
2
3
4
5
6
7
8
9
10
11
|
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
a = np.random.randn( 100 )
b = np.random.randn( 100 )
#colormap:rdylbu
plt.scatter(a,b,s = np.power( 10 * a + 20 * b, 2 ), #s散点标记的大小
c = np.random.rand( 100 ), #c散点标记的颜色
cmap = mpl.cm.rdylbu, #将浮点数映射成颜色的颜色映射表
marker = 'o' )
plt.show()
|
7.函数stem()--用于绘制棉棒图
绘制离散的有序数据
1
2
3
4
5
6
7
|
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace( 0.5 , 2 * np.pi, 20 )
y = np.random.randn( 20 )
plt.stem(x,y,linefmt = "-." ,markerfmt = "o" ,basefmt = "-" )
linefmt棉棒的样式、markerfmt棉棒末端的样式、basefmt指定基线的样式
plt.show()
|
8.函数boxplot()--用于绘制箱型图
绘制箱型图
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcparams[ "font.sans-serif" ] = [ "simhei" ]
mpl.rcparams[ "axes.unicode_minus" ] = false
x = np.random.randn( 1000 )
plt.boxplot(x)
plt.xticks([ 1 ],[ "随机数生成器alpharm" ])
plt.ylabel( "随机数值" )
plt.title( "随机数生成器抗干扰能力的稳定性" )
plt.grid(axis = "y" ,ls = ":" ,lw = 1 ,color = "gray" ,alpha = 0.4 )
plt.show()
|
9.函数errorbar()--用于绘制误差棒图
绘制y轴方向或是x轴方向的误差范围
1
2
3
4
5
6
7
|
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace( 0.1 , 0.6 , 6 )
y = np.exp(x)
plt.errorbar(x,y,fmt = "bo:" ,yerr = 0.2 ,xerr = 0.02 )
plt.xlim( 0 , 0.7 )
plt.show()
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。
原文链接:https://www.jianshu.com/p/1585d27c0506