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

news2024/11/16 21:34:18

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 实践》第三章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript Hashmap散列算法

文章目录前言一、什么是散列表二、为何使用散列算法三、实现散列算法1.字典结构2.散列函数3.put 设置/更新4. 获取值四、使用HashMap处理冲突1.分离链接2.线性探查总结前言 一、什么是散列表 散列表是字典(Dictionary)的一种实现. 集合以[值, 值]形式存储, 字典则以[键, 值]对…

不让袁树雄上春晚,导演于蕾是真英明

自从央视兔年春晚结束后,互联网上面就出现各种吐槽声音,尤其是关于热歌《早安隆回》的话题。说起歌曲《早安隆回》,这是2022年最火的歌曲之一,民间的呼声也一直很高,都希望能够登上央视春晚舞台。 不过随着央视春晚的结…

在甲骨文云容器实例(Container Instances)上部署Alist

在甲骨文云容器实例上部署Oracle Linux 8 Desktop加强版创建容器实例查看容器实例的公共 IP 地址查看密码使用Alist甲骨文云推出了容器实例,这是一项无服务器计算服务,可以即时运行容器,而无需管理任何服务器。今天我们尝试一下通过容器实例部…

数据结构与算法(一)(Python版)

python基础知识整理二 文章目录算法分析运行时间检测大O表示法“变位词”判断问题解法一: O(logn)解法二:暴力法 O(n!)解法三 O(n)Python数据类型的性能示例判断是否是素数求素数个数基本结构——线性结构栈抽象数据类型以及Python实现用Python实现抽象数据结构栈栈…

HQChart实战教程58-K线主图仿tradingview

HQChart实战教程58-K线主图仿tradingview 需求效果图实现思路步骤1. 写透明成交量柱子指标2. 调整成交量柱子和K线图显示区域HQChart插件源码地址完整的demo例子需求 主图K线图和成交量柱子图在一个同窗口显示,柱子图高度为主图窗口高度的1/4,并且成交量柱子图使用透明色 效…

【论文翻译】Deep High-Resolution Representation Learningfor Visual Recognition

目录 摘要 介绍 2.相关工作 3 HIGH-RESOLUTION NETWORKS 3.1 并行多分辨率卷积 3.2 重复的多分辨率融合融合模块 3.3 表示头 3.4实例化 3.5分析 4 人体姿态估计 5语义分割 8.总结 摘要 高分辨率表示对于位置敏感的视觉问题是必不可少的,例如人体姿势估计…

垃圾收集器必问系列—G1

本文已收录至Github,推荐阅读 👉 Java随想录 人生下来不是为了拖着锁链,而是为了展开双翼。——雨果 文章目录基于Region的堆内存布局可预测的停顿时间模型跨Region引用对象对象引用关系改变运作过程CMS VS G1相关参数Garbage First&#xff…

重要的数据表

重要的数据表目录概述需求:设计思路实现思路分析1.-- 组织结构数据库.参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challeng…

51单片机学习笔记-6串口通信

6 串口通信 [toc] 注:笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 6.1 串口通信原理 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通…

层级选择器

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>层级选择器</title> <style type"text/css"> /*需求&#xff1a;需要选中前三个段落标签*/ /*下面两个选择器之间加…

JavaScript 发布订阅者模式和观察者模式及区别

一、发布订阅模式 发布订阅模式其实是一种对象间一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都将得到状态改变的通知。 多方订阅&#xff0c;一方发布&#xff0c;订阅放会收到通知 举例&#xff1a;教学楼中每个教室都有一个广…

Iterator_fail-fast和Iterator_fail-safe~

初识fail-fast&#xff1a; fail-fast 机制是java集合(Collection)中的一种错误机制&#xff0c;当多个线程对同一个集合的内容进行操作时&#xff0c;就可能会产生fail-fast事件&#xff0c;它只是一种错误检测机制&#xff0c;只能被用来检测错误&#xff0c;因为JDK并不保证…

蓝桥杯2022Python组

蓝桥杯2022Python组 1.排列字母 用一个sorted就好了&#xff0c;没啥好说的 s WHERETHEREISAWILLTHEREISAWAY s sorted(s) # 变成列表形式了 print(.join(s))2.寻找整数 这题我刚开始以为答案只能是11和17的倍数&#xff0c;就在他们的倍数里面找&#xff0c;发现不对&…

STL——STL简介、STL六大组件

一、STL是什么 STL(standard template library)&#xff1a; C标准模板库&#xff0c;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;还是一个包罗数据结构与算法的软件框架。 通俗来讲&#xff1a; STL就是将常见的数据结构&#xff08;顺序表、…

Superset权限管理

文章目录1.Superset角色1&#xff09;Admin2&#xff09;Alpha3&#xff09;Gamma4&#xff09;Sql_lab5&#xff09;Public2.实操自定义授权1&#xff09;权限集2&#xff09;实操1.Superset角色 Superset的默认角色有&#xff1a;Admin、Alpha、Gamma、sql_lab、Public 1&a…

【信息资源建设】

考试分为单选、判断改错、名词解释、简答、综合论述 1.1 如果按价值观念划分&#xff0c;则可将信息分为有用信息和无用信息 信息的特性&#xff1a;普遍性、客观性、时效性、传递性、共享性、变换性、转化性、可伪性。 1.1.2 &#xff08;必考&#xff09;OECD的知识分类…

【docker概念和实践 4】(4) 本地镜像提交到本地仓库

一、说明 registry是一个镜像&#xff0c;该镜像专门生成镜像仓库的容器&#xff0c;registry是基于http协议&#xff0c;那就是说&#xff0c;在单机、局域网、或者互联网上都可以建立registry数据仓库&#xff0c;存放自己构建的镜像。本篇专门介绍如何在本地单机上建立容器仓…

Python中的集合(set and frozenset)语法汇总

集合的基本语法知识目前有两种集合类型&#xff1a;set和frozenset。可变集合&#xff1a;set()set类型是可变的&#xff0c; 其内容可以使用 add() 和 remove() 这样的方法来改变&#xff0c;因为是可变的&#xff0c;所以没有哈希值&#xff0c;且不能被用作字典的键或其它集…

java线上项目排查,Arthas简单上手

Arthas 是Alibaba开源的Java诊断工具。参考&#xff1a;Arthas 用户文档 — Arthas 3.5.4 文档 当你遇到以下类似问题而束手无策时&#xff0c;Arthas可以帮助你解决&#xff1a; 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception&#xff1f;我改的代…

一起Talk Android吧(第四百七十九回:集合类视图动画)

文章目录使用方法属性介绍示例代码各位看官们大家好&#xff0c;上一回中咱们说的例子是"旋转类视图动画",这一回中咱们说的例子是"集合类视图动画"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&#xff01; 使用方法 集合类动画…