该文会讲解一些大家比较熟悉却又经常混淆的统计图形,掌握这些统计图形可以对数据可视化有一个深入理解,并正确使用。
函数功能:在 x 轴上绘制定性数据的分布特征。
调用签名:plt.bar(x,y)。
参数说明
x:标示在 x 轴上的定性数据的类别。
y:每种定性数据的类别的数量。
调用展示
(1)代码实现
# 使用的代码都是coding:utf-8的
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
# some simple data
x = [1,2,3,4,5,6,7,8]
y = [3,1,4,5,8,9,7,2]
# create bar
plt.bar(x,y,align="center",color="r",tick_label=["A","B","C","D","E","F"
,"G","H"],hatch="\/")
# set x,y_axis label
plt.xlabel("箱子编号")
plt.ylabel("箱子重量(kg)")
plt.show()
(2)运行结果如图
函数功能:在 y 轴上绘制定性数据的分布特征。
调用签名:plt.barh(x,y)。
参数说明
x:标示在 y 轴上的定型数据的类别。
y:每种定性数据的类别的数量。
调用展示
(1)代码实现
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
# some simple data
x = [1,2,3,4,5,6,7,8]
y = [3,1,4,5,8,9,7,2]
# create bar
plt.barh(x,y,align="center",color="r",tick_label=["q","a","c","e","r","j","b","P"],hatch="\/")
# 建立XY轴标签
plt.xlabel("箱子重量(kg)")
plt.ylabel("箱子编号")
plt.show()
(2)运行结果如图
函数功能:在 x 轴上绘制定量数据的分布特征。
调用签名:plt.hist(x)。
参数说明
x:在 x 轴上绘制箱体的定量数据输入值。
调用展示
(1)代码实现
# -*- coding:utf-8 -*-
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
import matplotlib.pyplot as plt
import numpy as np
# set test scores
boxWeight = np.random.randint(1,10,100) # 箱子的重量
x = boxWeight
# plot histogram
bins = range(0,11,1)
plt.hist(x,bins=bins,
color="r",
histtype="bar",
rwidth=1,
alpha=0.6)
# set x,y-axis label
plt.xlabel("箱子重量(kg)")
plt.ylabel("销售数量(个)")
plt.show()
(2)运行结果如图
函数功能:绘制定性数据的不同类别的百分比。
调用签名:plt.pie(x)。
参数说明
x:定性数据的不同类别的百分比。
调用展示
(1)代码实现
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
kinds = "a","b","c","d"
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("abcd")
plt.show()
(2)运行结果如图
函数功能:在极坐标轴上绘制折线图。
调用签名:plt.polar(theta,r)。
参数说明
theta:每个标记所在射线与极径的夹角。
r:每个标记到原点的距离。
调用展示
(1)代码实现
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,
color="chartreuse",
linewidth=2,
marker="*",
mfc="r",
ms=12)
plt.show()
(2)运行结果如图
函数功能:二维数据借助气泡大小展示三维数据。
调用签名:plt.scatter(x,y)。
参数说明
x:x 轴上的数值。
y:y 轴上的数值。
s:散点标记的大小。
c:散点标记的颜色。
cmap:将浮点数映射成颜色的颜色映射表。
调用展示
(1)代码实现
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),
c=np.random.rand(100),
cmap=mpl.cm.RdYlBu,
marker="o")
plt.show()
(2)运行结果如图
函数功能:绘制离散有序数据。
调用签名:plt.stem(x,y)。
参数说明
x:指定棉棒的 x 轴基线上的位置。
y:绘制棉棒的长度。
linefmt:棉棒的样式。
markerfmt:棉棒末端的样式。
basefmt:指定基线的样式。
调用展示
(1)代码实现
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.5,3*np.pi,25)
y = np.random.randn(25)
plt.stem(x,y,linefmt=".-",markerfmt="o",basefmt="-")
plt.show()
(2)运行结果如图
函数功能:绘制箱线图。
调用签名:plt.boxplot(x)。
参数说明
x:绘制箱线图的输入数据。
调用展示
(1)代码实现
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["FangSong"]
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="r",alpha=0.4)
plt.show()
(2)运行结果如图
函数功能:绘制 y 轴方向或是 x 轴方向的误差范围。
调用签名:plt.errorbar(x,y,yerr=a,xerr=b)。
参数说明
x:数据点的水平位置。
y:数据点的垂直位置。
yerr:y 轴方向的数据点的误差计算方法。
xerr:x 轴方向的数据点的误差计算方法。
调用展示
(1)代码展示
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1,1.2,6)
y = np.exp(x)
plt.errorbar(x,y,fmt="bo:",yerr=0.3,xerr=0.03)
plt.xlim(0,0.7)
plt.show()
(2)运行结果如图
参考资料:《Python 数据可视化之 matplotlib 实践》第二章