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

2023-11-12

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()

运行结果:

为了展示图表里的中文字体,我们选择字体“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()

运行结果:

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()

运行结果:

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()

运行结果:

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()

运行结果:

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("试卷份数")

运行结果:

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()

运行结果:

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()

运行如图:

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()

运行如下:

列表“[(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()

运行结果如下:

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()

运行结果如下:

首先,我们先解释一下函数 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()

运行结果如图:

解释一下函 数 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()

运行结果:

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

饼图的可视化效果。

代码:

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()

运行结果:

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()

运行结果如下:

我们采用单一数值的非对称形式的误差棒,函数 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()

运行结果如下:

带误差棒的条形图

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

代码实现

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()

运行结果如下:

带误差棒的条形图的绘制是通过使用函数 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()

运行结果如图

带误差棒的堆积柱状图

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

代码实现

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()

运行结果如图

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

参考资料:《Python 数据可视化之 matplotlib 实践》第三章

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python数据可视化(三)绘制统计图形大全 的相关文章

  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得

随机推荐

  • 210. 课程表 II

    文章目录 Tag 题目来源 题目解读 解题思路 方法一 拓扑排序 写在最后 Tag 拓扑排序 题目来源 210 课程表 II 题目解读 在选修某些课程之前需要先学习某些课程 先学习的课程有数组 prerequisites 给出 其中 pre
  • NAT和全网互通

    首先在GWserver设备上安装一个 路由和远程访问 然后打开路由和远程访问右键新建nat
  • 怎么用计算机测量一个物体的高度,常用测量工具的使用方法?

    工具分类测量工具通常按用途分为通用测量工具 专类测量工具和专用测量工具3类 测量工具还可按工作原理分为机械 光学 气动 电动和光电等类型 这种分类方法是由测量工具的发展历史形成的 但一些现代测量工具已经发展成为同时采用精密机械 光 电等原理
  • Ubuntu安装SSH服务

    注 安装前需要先将 源 配置好 以下演示为root账号 1 更新软件源 apt get install y update 2 安装openssl apt get install y update apt get install y open
  • Set集合框架

    前言 给大家讲讲Set结合框架 码字不易 点个关注 转载请说明 思维导图 目录 1 List和Set的区别 1 两者的特点 2 两者之间的对比 3 取值 2 Set集合的特点 3 Set集合的循环方式 4 HashSet去重复以及原理 1
  • git修改分支名

    使用git命令操作 1 修改本地分支名称 git branch m oldBranchName newBranchName 2 将本地分支的远程分支删除 git push delete origin oldBranchName 3 将改名后
  • virtual usb multikey安装设备时出现错误_【图解USB】USB 之CDC 程序结构(完结篇)...

    来源 公众号 鱼鹰谈单片机 作者 鱼鹰Osprey ID emOsprey本篇介绍整个例程的结构和程序流程 Github 里面有一个仓库CMSIS DAP https github com x893 CMSIS DAP 该工程可以导入到gi
  • 强化学习 最前沿之graph policy gradients

    强化学习 Zee最前沿系列 深度强化学习作为当前发展最快的方向 可以说是百家争鸣的时代 针对特定问题 针对特定环境的文章也层出不穷 对于这么多的文章和方向 如果能撇一隅 往往也能够带来较多的启发 本系列文章 主要是针对当前较新的深度强化学习
  • 使用SQL语句操作数据表和管理表中的数据

    一 使用SQL语句操作数据表 表名是可以在数据库中唯一确定的一张表 1 创建表 语法 create table 表的名字 列名1 数据类型 列名2 数据类型 列名3 数据类型 注意 创建表之后括号后应该用分号结束 并且在列名和数据类型的最后
  • Windows平台下安装与配置MySQL

    免费下载网址 https dev mysql com downloads windows installer 8 0 html 版本选择 社区版8 0 20 双击安装包 选择Developer Default 下一步 点Execute执行
  • C语言 - static inline

    2019 07 16 今天在看DPDK负载均衡的实例代码中 通过函数跳转 看到官方API后 发现了static inline这个关键字 这个我只是在很早之前知道inline是内联的 可以不进行压栈 但是static毕竟是限制函数的作用域的啊
  • Sentinel实现熔断与限流

    文章目录 一 Sentinel是什么 1 简介 2 对比 3 Linux安装 二 初始化演示工程 1 新建module cloudalibaba sentinel service8401 2 pom文件 3 application yml
  • 个人总结:京东技术体系员工级别划分及薪资区间

    管理层级 序列层级 职衔 对应T序 薪资区间 技术 M5 CXO M5 VP M4 3 高级总监 M4 2 总监 T5 40 50k M4 1 副总监 T5 35 45k M3 高级经理 T4 2 30 40k M2 2 经理 T4 1 2
  • 【ReID】【代码注释】采样器 deep-person-reid/samplers.py

    源码URL https github com michuanhaohao deep person reid blob master samplers py 采样器读源码注释如下 from future import absolute imp
  • Java三大器之拦截器(Interceptor)的实现原理及代码示例

    前言 前面2篇博客 我们分析了Java中过滤器和监听器的实现原理 今天我们来看看拦截器 1 拦截器的概念 java里的拦截器是动态拦截Action调用的对象 它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码 也可以在一个
  • ImportError: cannot import name ‘mean_absolute_percentage_error‘ from ‘sklearn.metrics‘

    在使用mean absolute percentage error时 导入模块报错 from sklearn metrics import mean absolute percentage error 报错信息 ImportError ca
  • python将字符串转为字典(将str类型还原为dict字典类型)

    有三种方法 eval 字符串 yaml load 字符串 Loader yaml FullLoader ast literal eval 字符串 但是要注意 转换之前 原始的字典中key与value必须是python原生支持的类型 不能是d
  • 代码实例讲解:卷积神经网络程序细节(附完整代码)

    1 导入数据集和tensorflow包 from tensorflow examples tutorials mnist import input data import tensorflow as tf 2 初步探索mnist数据集的内容
  • 高通平台中用devicetree注册设备及驱动匹配

    1 在设备树文件 dts 中的相应节点下添加要注册设备的节点 soc plf char dev mytest plf char dev compatible mytest plf char dev 定义好的设备树源文件 dts文
  • Python数据可视化(三)绘制统计图形大全

    3 1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理 这里重点讲解 bar 函数的使用方法 代码 import matplotlib as mpl import matplotlib pyplot as plt mpl rcPa