Python数据可视化(三)绘制统计图形大全

这篇具有很好参考价值的文章主要介绍了Python数据可视化(三)绘制统计图形大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3.1 柱状图

以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法。

代码:

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]
y = [6,10,4,5,1]
# create bar
plt.bar(x,y,align="center",color="r",tick_label=["A","B","C","D","E"],alpha=0.6)
# set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
# set yaxis grid
plt.grid(True,axis="y",ls=":",color="r",alpha=0.3)
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

为了展示图表里的中文字体,我们选择字体“SimHei”, 通 过 “mpl.rcParams["font.sans-serif"]

=["SimHei"]”完成字体配置任务。不使用默认的“Unicode minus”模式来处理坐标轴轴线的刻度标

签是负数的情况,一般可以使用“ASCII hyphen”模式来处理坐标轴轴线的负刻度值的情况,即 通

过“mpl.rcParams["axes.unicode_minus"]=False”语句实现模式的选择。

语句中各参数的含义:

  • x:柱状图中的柱体标签值。

  • y:柱状图中的柱体高度。

  • align:柱体对齐方式。

  • color:柱体颜色。

  • tick_label:刻度标签值。

  • alpha:柱体的透明度。

3.2 条形图

将柱状图中的柱体由垂直方 向变成水平方 向,柱状图就变成条形图,函数也就变成barh(x,y,align="center",color="k",tick_label=["A","B","C","D","E"]),其中参数 x 是 y 轴上柱体标签值,y 是柱体的宽度,在 x 轴上显示,tick_label 表示 y 轴上的柱体标签值。

代码:

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]
y = [6,10,6,5,6]
# create horizontal bar
plt.barh(x,y,align="center",color="r",tick_label=["A","B","C","D","E"])
# set x,y_axis label
plt.ylabel("测试难度")
plt.xlabel("试卷份数")
# set xaxis grid
plt.grid(True,axis="x",ls=":",color="r",alpha=0.3)
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.3 堆积图

堆积图顾名思义就是将若干统计图形堆叠起来的统计图形,自然是一种组合式图形。下面,我们就结合前面讲过的柱状图和条形图的绘制方法,具体讲解堆积柱状图和堆积条形图的实现方法。

3.3.1堆积柱状图

如果将函数 bar()中的参数 bottom 的取值设定为列表 y,列表 y1=[2,6,3,8,5]代表另一套试卷的份

数,函数 bar(x,y1,bottom=y,color="r")就会输出堆积柱状图。

代码:

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]
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]
# create bar
plt.bar(x,y,align="center",color="#66c2a5",tick_label=["A","B","C","D","E"],label="班级 A")
plt.bar(x,y1,align="center",bottom=y,color="#8da0cb",label="班级 B")
# set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.legend()
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.3.2堆积条形图

将函数 barh()中的参数 left 的取值设定为列表 y,列表 y1=[2,6,3,8,5]代表另一套试卷的份数,

函数 barh(x,y1,left=y,color="r")就会输出堆积条形图。

代码:

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]
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]
# create bar
plt.barh(x,y,align="center",color="#66c2a5",tick_label=["A","B","C","D","E"],label="班级 A")
plt.barh(x,y1,align="center",left=y,color="#8da0cb",label="班级 B")
# set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.legend()
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.4 分块图

3.4.1多数据并列柱状图

对于堆积柱状图而言,我们也可以选择多数据并列柱状图来改变堆积柱状图的可视化效果。当

然,堆积条形图也可以改变可视化效果,呈现多数据平行条形图的图形样式。

代码:

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
# some simple data
x = np.arange(5)
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]
bar_width = 0.35
tick_label=["A","B","C","D","E"]
# create bar
plt.bar(x,y,bar_width,color="c",align="center",label="班级 A",alpha=0.5)
plt.bar(x+bar_width,y1,bar_width,color="b",align="center",label=" 班级B",alpha=0.5)
# set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
# set xaxis ticks and ticklabels
plt.xticks(x+bar_width/2,tick_label)
plt.legend()
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.4.2多数据平行条形图

对于堆积条形图而言,我们也同样可以选择多数据平行条形图来改变堆积条形图的可视化效果。

多数据平行条形图与多数据并列柱状图的实现方法是类似的,只是调用函数由 bar()变成 barh()。

代码:

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
# some simple data
x = np.arange(5)
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]
bar_width = 0.35
tick_label=["A","B","C","D","E"]
# create bar
plt.barh(x,y,bar_width,color="c",align="center",label="班级 A",alpha=0.5)
plt.barh(x+bar_width,y1,bar_width,color="b",align="center",label=" 班级B",alpha=0.5)
# set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.5 参数探索

如果想在柱体上绘制装饰线或装饰图,也就是说,设置柱体的填充样式。我们可以使用关 键字参数hatch,关键字参数 hatch 可以有很多取值,例如,“"/"”“"\\"”“"|"”“"-"”等,每种符号字符串

都是一种填充柱体的几何样式。而且,符号字符串的符号数量越多,柱体的几何图形的密集程度越高。

代码:

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]
y = [6,10,4,5,1]
# create bar
plt.bar(x,y,align="center",color="c",tick_label=["A","B","C","D","E"],hatch="|//")
# set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.6 堆积折线图、间断条形图和阶梯图

3.6.1用函数 stackplot()绘制堆积折线图

堆积折线图是通过绘制不同数据集的折线图而生成的。堆积折线图是按照垂直方向上彼此堆叠

且又不相互覆盖的排列顺序,绘制若干条折线图而形成的组合图形。

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,6,1)
y = [0,4,3,5,6]
y1 = [1,3,4,2,7]
y2 = [3,4,1,6,5]
labels = ["BluePlanet","BrownPlanet","GreenPlanet"]
colors = ["#8da0cb","#fc8d62","#66c2a5"]
plt.stackplot(x,y,y1,y2,labels=labels,colors=colors)
plt.legend(loc="upper left")
plt.show()

运行如图:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.6.2用函数 broken_barh ()绘制间断条形图

间断条形图是在条形图的基础上绘制而成的,主要用来可视化定性数据的相同指标在时间维度

上的指标值的变化情况,实现定性数据的相同指标的变化情况的有效直观比较。

代码如下:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["LiSu"]
mpl.rcParams["axes.unicode_minus"]=False
plt.broken_barh([(30,100),(180,50),(260,70)],(20,8),facecolors="#1f78b4")
plt.broken_barh([(60,90),(190,20),(230,30),(280,60)],(10,8),facecolors=(
"#7fc97f","#beaed4","#fdc086","#ffff99"))
plt.xlim(0,360)
plt.ylim(5,35)
plt.xlabel("演出时间")
plt.xticks(np.arange(0,361,60))
plt.yticks([15,25],["歌剧院 A","歌剧院 B"])
plt.grid(ls="-",lw=1,color="gray")
plt.title("不同地区的歌剧院的演出时间比较")
plt.show()

运行如下:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

列表“[(60,90),(190,20),(230,30),(280,60)]”的元组表示从起点是 x 轴的数值为 60 的位置起,沿x轴正方向移动 90 个单位。其他元组的含义类似。参数“(10,8)”表示从起点是 y 轴的数值为 10 的位置起,沿 y 轴正方向移动 8 个单位,这就是每个柱体的高度和垂直起始位置。关键字参数 facecolors 表示每个柱体的填充颜色,这里使用 HEX 模式的颜色表示方法。

3.6.3用函数 step()绘制阶梯图

阶梯图在可视化效果上正如图形的名字那样形象,就如同山间的台阶时而上升时而下降,从图形本身而言,很像折线图。也用采是反映数据的趋势变化或是周期规律的。阶梯图经常使用在时间序列数据的可视化任务中,凸显时序数据的波动周期和规律。

代码实现

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10,10)
y = np.sin(x)
plt.step(x,y,color="#8dd3c7", where="pre",lw=2)
plt.xlim(0,11)
plt.xticks(np.arange(1,11,1))
plt.ylim(-1.2,1.2)
plt.show()

运行结果如下:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.7 直方图

直方图是用来展现连续型数据分布特征的统计图形。利用直方图我们可以直观地分析出数据的

集中趋势和波动情况。

我们以 Python 代码的形式讲解直方图的绘制原理,主要讲解 hist()函数的使用方法。

代码实现

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
scoresT = np.random.randint(0,100,100)
x = scoresT
# plot histogram
bins = range(0,101,10)
plt.hist(x,bins=bins,
color="#377eb8",
histtype="bar",
rwidth=10)
# set x,y-axis label
plt.xlabel("测试成绩")
plt.ylabel("学生人数")
plt.show()

运行结果如下:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

首先,我们先解释一下函数 hist(x,bins=bins,color= "b",histtype="bar",label="score",rwidth=10)的参数的含义。

x:连续型数据输入值。

bins:用于确定柱体的个数或是柱体边缘范围。

color:柱体的颜色。

histtype:柱体类型。

label:图例内容。

rwidth:柱体宽度。

3.8 饼图

饼图是用来展示定性数据比例分布特征的统计图形。通过绘制饼图,我们可以清楚地观察出数

据的占比情况。

我们以 Python 代码的形式来讲述饼图的绘制原理,我们重点讲解 pie()函数的使用细节。

代码实现:

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
labels = "A 难度水平","B 难度水平","C 难度水平","D 难度水平"
students = [0.35,0.15,0.20,0.30]
colors = ["#377eb8","#4daf4a","#984ea3","#ff7f00"]
explode = (0.1,0.1,0.1,0.1)
# exploded pie chart
plt.pie(students,explode=explode,
labels=labels,
autopct="%3.1f%%",
startangle=45,
shadow=True,
colors=colors)
plt.title("选择不同难度测试试卷的学生百分比")
plt.show()

运行结果如图:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

解释一下函 数 pie(students,explode=explode,labels=labels,autopct= "%3.1f%%",

startangle=45,shadow=True, colors=colors)的参数含义,如下所示。

students:饼片代表的百分比。

explode:饼片边缘偏离半径的百分比。

labels:标记每份饼片的文本标签内容。

autopct:饼片文本标签内容对应的数值百分比样式。

startangle:从 x 轴作为起始位置,第一个饼片逆时针旋转的角度。

shadow:是否绘制饼片的阴影。

colors:饼片的颜色。

上面讲过分裂式饼图的绘制方法,接下来就调整函数 pie()的参数,绘制其他类型的饼图。

如果我们不绘制分裂式饼图 ,那么只需要去掉参数 explode 即可。

代码:

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
labels = "A 难度水平","B 难度水平","C 难度水平","D 难度水平"
students = [0.35,0.15,0.20,0.30]
colors = ["#377eb8","#4daf4a","#984ea3","#ff7f00"]
# exploded pie chart
plt.pie(students,
labels=labels,
autopct="%3.1f%%",
startangle=45,
pctdistance=0.7,
labeldistance=1.2,
colors=colors)
plt.title("选择不同难度测试试卷的学生百分比")
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

饼图不仅可以用来描述定性数据的比例分布,还可以将多个饼图进行嵌套,从而实现内嵌环形

饼图的可视化效果。

代码:

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
elements = ["面粉","砂糖","奶油","草莓酱","坚果"]
weight1 = [40,15,20,10,15]
weight2 = [30,25,15,20,10]
colormapList = ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"]
outer_colors = colormapList
inner_colors = colormapList
wedges1,texts1,autotexts1 = plt.pie(weight1,
autopct="%3.1f%%",
radius=1,
pctdistance=0.85,
colors=outer_colors,
textprops=dict(color="w"),
wedgeprops=dict(width=0.3,edgecolor="w"))
wedges2,texts2,autotexts2 = plt.pie(weight2,
autopct="%3.1f%%",
radius=0.7,
pctdistance=0.75,
colors=inner_colors,
textprops=dict(color="w"),
wedgeprops=dict(width=0.3,edgecolor="w"))
plt.legend(wedges1,
elements,
fontsize=12,
title="配料表",
loc="center left",
bbox_to_anchor=(0.91, 0, 0.3, 1))
plt.setp(autotexts1,size=15,weight="bold")
plt.setp(autotexts2,size=15,weight="bold")
plt.setp(texts1,size=12)

plt.title("不同果酱面包配料比例表的比较")
plt.show()

运行结果:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

3.9误差棒图

在很多科学实验中都存在测量误差或是试验误差,这是无法控制的客观因素。这样,在可视化试验结果的时候,最好可以给试验结果增加观测结果的误差以表示客观存在的测量偏差。误差棒图就是可以运用在这一场景中的很理想的统计图形。通过抽样获得样本,对总体参数进行估计会由于样本的随机性导致参数估计值出现波动,因此需要用误差置信区间来表示对总体参数估计的可靠范围。误差棒就可以很好地实现充当总体参数估计的置信区间的角色。误差棒的计算方法可以有很多种:单一数值、置信区间、标准差和标准误等。误差 棒的可视化展示效果也有很多种样式:水平误差棒、垂直误差棒、对称误差棒和非对称误差棒等。

我们以 Python 代码的形式讲解误差棒的绘制原理,主要讲解函数 errorbar()的使用方法和参数使用细节。

代码实现

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1,0.6,10)
y = np.exp(x)
error = 0.05+0.15*x
lower_error = error
upper_error = 0.3*error
error_limit = [lower_error,upper_error]
plt.errorbar(x,y,yerr=error_limit,fmt=":o",
ecolor="y",elinewidth=4,
ms=5,mfc="c",mec='r',
capthick=1,capsize=2)
plt.xlim(0,0.7)
plt.show()

运行结果如下:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

我们采用单一数值的非对称形式的误差棒,函数 errorbar()的参数含义如下所示。

x,y:数据点的位置。

yerr:单一数值的非对称形式误差范围。

fmt:数据点的标记样式和数据点标记的连接线样式。

ecolor:误差棒的线条颜色。

elinewidth:误差棒的线条粗细。

ms:数据点的大小。

mfc:数据点的标记颜色。

mec:数据点的标记边缘颜色。

capthick:误差棒边界横杠的厚度。

capsize:误差棒边界横杠的大小。

函数 errorbar()里的关键字参数 yerr 使用了误差范围的非对称形式,而且是数据点下方的误差范围大于数据点上方的误差范围。关键字参数 xerr 也可以使用类似的误差范围,关键字参数 fmt 如果取“none”值时,数据点的连线、数据点的标记样式和颜色都不显示。关键字参数 capthick 也可以用关键字参数 mew 代替。

本节我们讲解了误差棒图的绘制方法,知道了误差棒图是用来展示定量数据误差范围的统计图形。如果只是单一地使用误差棒图可能不会很好地发挥这种统计图形的实际应用价值。因此,需要我们将其他统计图形与误差棒图相结合来展示数据集的测量误差等内容。

带误差棒的柱状图

我们前面已经讲过柱状图和误差棒图的绘制原理,现在我们可以将这两种统计图形结合起来,绘制带误差棒的柱状图,使得统计图形在反映数据测量误差方面的应用领域得到拓展。这种统计图形在科学研究领域里应用范围很广泛。

(1)代码实现

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["LiSu"]
mpl.rcParams["axes.unicode_minus"]=False
# some simple data
x = np.arange(5)
y = [100,68,79,91,82]
std_err = [7,2,6,10,5]
error_attri = dict(elinewidth=2,ecolor="black",capsize=3)
# create bar with errorbar
plt.bar(x,y,
color="c",
width=0.6,
align="center",
yerr=std_err,
error_kw=error_attri,
tick_label=["园区 1","园区 2","园区 3","园区 4","园区 5"])
# set x,y_axis label
plt.xlabel("芒果种植区")
plt.ylabel("收割量")
# set title of axes
plt.title("不同芒果种植区的单次收割量")
# set yaxis grid
plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2)
plt.show()

运行结果如下:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

带误差棒的条形图

我们前面已经讲过条形图和误差棒图的绘制原理,现在我们可以将这两种统计图形结合起来,绘制带误差棒的条形图。如果我们试图反映定性数据的分布特征,同时还要反映分布的波动特征,那么这种统计图形就是合适之选。这种统计图形在科学研究领域里的用途很多。

代码实现

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["LiSu"]
mpl.rcParams["axes.unicode_minus"]=False
# some simple data
x = np.arange(5)
y = [1200,2400,1800,2200,1600]
std_err = [150,100,180,130,80]
bar_width = 0.6
colors = ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"]
# create horizontal bar
plt.barh(x,y,
bar_width,
color=colors,
align="center",
xerr=std_err,
tick_label=["家庭","小说","心理","科技","儿童"])
# set x,y_axis label
plt.xlabel("订购数量")
plt.ylabel("图书种类")
# set title
plt.title("大型图书展销会的不同图书种类的采购情况")
# set xaxis grid
plt.grid(True,axis="x",ls=":",color="gray",alpha=0.2)
plt.xlim(0,2600)
plt.show()

运行结果如下:

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

带误差棒的条形图的绘制是通过使用函数 barh()中的关键字参数 xerr 实现的。其他关键字参数的含义和用法都已经在前面有关柱状图里绘制条形图的部分详细介绍过。条形图的填充颜色是使用HEX 模式进行命名的,文中的中文字体是使用隶书“LiSu”字体。

带误差棒的多数据并列柱状图

在上面讲述了带误差棒的柱状图的绘制方法,其中的应用场景是有关于“不同芒果种植区的单次收割量”的案例。如果我们尝试进一步比较不同年份的不同芒果种植区的单次收割量的情况,那么就可以借助带误差棒的多数据并列柱状图进行可视化展示。

代码实现

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["LiSu"]
mpl.rcParams["axes.unicode_minus"]=False
# some simple data
x = np.arange(5)
y1 = [100,68,79,91,82]
y2 = [120,75,70,78,85]
std_err1 = [7,2,6,10,5]
std_err2 = [5,1,4,8,9]
error_attri = dict(elinewidth=2,ecolor="black",capsize=3)
bar_width = 0.4
tick_label=["园区 1","园区 2","园区 3","园区 4","园区 5"]
# create bar with errorbar
plt.bar(x,y1,
bar_width,
color="#87CEEB",
align="center",
yerr=std_err1,
error_kw=error_attri,
label="2010")
plt.bar(x+bar_width,y2,
bar_width,
color="#CD5C5C",
align="center",
yerr=std_err2,
error_kw=error_attri,
label="2013")
# set x,y_axis label
plt.xlabel("芒果种植区")
plt.ylabel("收割量")
# set xaxis tick_label
plt.xticks(x+bar_width/2,tick_label)
# set title of axes
plt.title("不同年份的芒果种植区的单次收割量")
# set yaxis grid
plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2)
plt.legend()
plt.show()

运行结果如图

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

带误差棒的堆积柱状图

如果我们尝试比较不同地区的图书展览会的图书采购情况,那么我们既可以使用带误差棒的多数据并列柱状图,也可以使用带误差棒的堆积柱状图来呈现图书展销会上订购情况的变化和差异。现在,我们介绍带误差棒的堆积柱状图的绘制方法。

代码实现

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["LiSu"]
mpl.rcParams["axes.unicode_minus"]=False
# some simple data
x = np.arange(5)
y1 = [1200,2400,1800,2200,1600]
y2 = [1050,2100,1300,1600,1340]
std_err1 = [150,100,180,130,80]
std_err2 = [120,110,170,150,120]
bar_width = 0.6
tick_label=["家庭","小说","心理","科技","儿童"]
error_attri = dict(ecolor="black",elinewidth=2,capsize=0)
# create bar
plt.bar(x,y1,
bar_width,
color="#6495ED",
align="center",
yerr=std_err1,
label="地区 1",
error_kw=error_attri)
plt.bar(x,y2,
bar_width,
bottom=y1,
color="#FFA500",
align="center",
yerr=std_err2,
label="地区 2",
error_kw=error_attri)
# set x,y_axis label
plt.xlabel("图书种类")
plt.ylabel("订购数量")
# set title
plt.title("不同地区大型图书展销会的图书采购情况")
# set yaxis grid
plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2)
plt.xticks(x,tick_label)
plt.legend()
plt.show()

运行结果如图

python绘制统计图,Python数据可视化,信息可视化,python,数据分析,matplotlib,Powered by 金山文档

前面我们已经讲解过堆积柱状图的绘制原理了,现在只需要将误差棒添加到堆积柱状图中就可以实现两种统计图形的融合,绘制出带误差棒的堆积柱状图。完成带误差棒的堆积柱状图的绘制任务的关键在于关键字参数 yerr 的使用。因此,只需要向函数 bar()传递关键字参数 yerr 就可以在堆积柱状图的基础上,实现带误差棒的堆积柱状图的绘制任务。

参考资料:《Python 数据可视化之 matplotlib 实践》第三章文章来源地址https://www.toymoban.com/news/detail-788463.html

到了这里,关于Python数据可视化(三)绘制统计图形大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【100天精通python】Day39:GUI界面编程_PyQt 从入门到实战(下)_图形绘制和动画效果,数据可视化,刷新交互

    目录 专栏导读  6 图形绘制与动画效果 6.1 绘制基本图形、文本和图片

    2024年02月12日
    浏览(53)
  • 100天精通Python(可视化篇)——第92天:Pyecharts绘制炫酷柱状图、条形图实战大全

    🔥🔥 本文已收录于 《100天精通Python从入门到就业》:本专栏专门针对零

    2024年02月12日
    浏览(45)
  • [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

    本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。GeoPandas的官方文档地址为:GeoPandas-doc。关于Geo

    2023年04月09日
    浏览(47)
  • 数据可视化python,绘制饼图,代码和解析

    使用matplotlib.pyplot.pie绘制 (1),该函数的定义如下: matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None) 参数说明:

    2024年02月06日
    浏览(48)
  • 数据可视化——用python绘制简单的折线图

    前面我们已经学习了python的基础语法和面向对象,那么接下来我们将学习python编程语言的过人之处——数据的可视化之折线图。 说到数据可视化,我们需要先知道什么是JSON。 json是一种轻量级的数据交互格式,可以按照json指定的格式去组织和封装数据 json本质上是一个带有特

    2024年02月17日
    浏览(42)
  • [数据分析与可视化] 基于Python绘制简单动图

    动画是一种高效的可视化工具,能够提升用户的吸引力和视觉体验,有助于以富有意义的方式呈现数据可视化。本文的主要介绍在Python中两种简单制作动图的方法。其中一种方法是使用matplotlib的Animations模块绘制动图,另一种方法是基于Pillow生成GIF动图。 Matplotlib的Animations模

    2024年02月03日
    浏览(42)
  • 【Python入门系列】第十五篇:Python数据可视化和图表绘制

    数据可视化是数据分析和数据科学中非常重要的一部分。通过可视化,我们可以更好地理解数据、发现数据之间的关系、展示数据的趋势和模式,并向他人传达我们的发现。 Python是一种功能强大的编程语言,拥有许多用于数据可视化的库和工具。其中,Matplotlib是最常用的绘

    2024年02月13日
    浏览(61)
  • 数据可视化|Python之Pyecharts将“爬虫数据”绘制饼状图

    前言 本文是该专栏的第40篇,后面会持续分享python数据分析的干货知识,记得关注。 在项目中,可能有些同学或多或少遇见这样的需求。将爬虫采集下来的数据,进行图像可视化处理,方便其他业务线进行数据分析处理。 而本文,笔者将以某个 爬虫案例 的采集数据为例子,

    2024年01月18日
    浏览(51)
  • 【数据可视化】Python通过Pyecharts库绘制geo类地图

    我们知道,在数据可视化中的地图可视化分为map类地图和geo类地图,而现在我将介绍geo类地图,会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着我来一起学习学习吧!(由于我是一位初学者,若有不对的还望大家多多指教,蟹蟹~) 中文官方文档和

    2024年02月04日
    浏览(63)
  • Python 数据可视化教程 - 如何使用 pyecharts 绘制多条折线图表

    部分数据来源: ChatGPT   引言         本文主要介绍如何使用 Python 中的 pyecharts 库,绘制多条折线图表。在本例中,我们将展示各国的 COVID-19 确诊人数数据。 1、首先,我们需要导入必要的库: 其中, json  库用于解析 JSON 数据, pyecharts  库用于绘图, TitleOpts 、 Lege

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包