Matplotlib绘图知识小结--Python数据分析学习

一、Pyplot子库绘制2D图表

1、Matplotlib Pyplot

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。
Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。
Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。

使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt:

import matplotlib.pyplot as plt

就可以使用 plt 来引用 Pyplot 包的方法。

以下实例,我们通过两个坐标 (0,0) 到 (6,100) 来绘制一条线:

import matplotlib.pyplot as plt
import numpy as np
# 使用 numpy 构造数组作为数据
x=np.array([0,6]) # x轴的数据
y=np.array([0,100]) # y轴的数据
plt.plot(x, y)
plt.show() # 让图形得到显示

在这里插入图片描述
plot() 用于画图它可以绘制点和线,语法格式如下:

# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。
  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。
  • **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。

颜色字符:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,‘#008000’ RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色

线型参数:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。

标记字符:‘.’ 点标记,‘,’ 像素标记(极小点),‘o’ 实心圈标记,‘v’ 倒三角标记,‘^’ 上三角标记,‘>’ 右三角标记,‘<’ 左三角标记…等等。

2、实例:绘制sin、cos函数,并指定线型和颜色

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,4*np.pi,0.1) # 0-4pi 每隔0.1取一个数
# 直接调用numpy里面的三角函数
y=np.sin(x)
z=np.cos(x)
plt.plot(x,y,'r-.',x,z,'b:')# 第一条线的参数、样式,第二条线的参数、样式
plt.show()

在这里插入图片描述

3、绘制散点图

import matplotlib.pyplot as plt
import numpy as np
x=np.array([1,2,3,4,5,6])
y=np.array([1,2,3,4,5,6])
plt.plot(x,y,'o')#实心点,绘制散点图
plt.show()

在这里插入图片描述

以上只是简单的使用了pyplot库。

二、Matplotlib 绘图标记

绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。
fmt 参数
fmt 参数定义了基本格式,如标记、线条样式和颜色。

fmt = '[marker][line][color]'

marker 可以定义的符号如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述标记大小与颜色
我们可以自定义标记的大小与颜色,使用的参数分别是:

  • markersize,简写为 ms:定义标记的大小。
  • markerfacecolor,简写为 mfc:定义标记内部的颜色。
  • markeredgecolor,简写为 mec:定义标记边框的颜色。

线的宽度
线的宽度可以使用 linewidth 参数来定义,简写为 lw,值可以是浮点数,如:1、2.0、5.67 等。

1、综合案例

(1)拐点带样式的散点图

y = np.array([1,5,3,54,6,3,67,4,23])
plt.plot(y,marker='o') # x轴参数不指定,则按0-n对应y轴参数plt.show()   

在这里插入图片描述
(2)多参数

import matplotlib.pyplot as plt
import numpy as np
y=np.array([3,5,1,8,4])
plt.plot(y,'o-.b',ms=15,mfc='r',mec='g')# 线条的样式、标记的大小、标记内部填充的颜色、标记的边框颜色
plt.show()

在这里插入图片描述

三、Matplotlib 轴标签和标题

设置轴标签和标题时,如果使用中文,可能会出现乱码情况,可以使用以下两行代码解决

plt.rcParams['font.sans-serif'] = [u'SimHei'] # SimHei就是中文字体
# 因为设置了中文后,负号就乱码了,所以还要设置负号的编码
plt.rcParams['axes.unicode_minus'] = False # 修改坐标轴中符号的编码

1、轴标签

可以使用 xlabel() 和 ylabel() 方法来设置 x 轴和 y 轴的标签。

2、标题

我们可以使用 title() 方法来设置标题。

案例

import matplotlib.pyplot as plt
import numpy as np
x=np.array([1,2,3,4,5])
y=np.array([1,4,9,16,25])
plt.plot(x,y,'.-.',linewidth=1)
plt.title('matplotlib')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

在这里插入图片描述

3、标题与标签的定位

  • title() 方法提供了 loc 参数来设置标题显示的位置,可以设置为: ‘left’, ‘right’, 和 ‘center’, 默认值为 ‘center’。

  • xlabel() 方法提供了 loc 参数来设置 x 轴显示的位置,可以设置为: ‘left’, ‘right’, 和 ‘center’, 默认值为 ‘center’。

  • ylabel() 方法提供了 loc 参数来设置 y 轴显示的位置,可以设置为: ‘bottom’, ‘top’, 和 ‘center’, 默认值为 ‘center’。

4、使用中文字体

方法有很多种,这里使用系统的字体。
查看字体种类:

from matplotlib import pyplot as plt
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])for i in a:print(i)

绘图中添加字体:

plt.rcParams['font.family']=['STFangsong']

实例:

import matplotlib.pyplot as pltimport numpy as np
plt.rcParams['font.family']=['FangSong']x=np.array([1,2,3,4,5])
y=np.array([1,4,9,16,25])
plt.plot(x,y,'.-.',linewidth=1)
plt.title('绘图',fontsize=25)
plt.xlabel('x轴',loc='right',fontsize=18)
plt.ylabel('y轴',loc='top',fontsize=18)
plt.show()

在这里插入图片描述

四、Matplotlib 网格线

我们可以使用 pyplot 中的 grid() 方法来设置图表中的网格线。

grid() 方法语法格式如下:

matplotlib.pyplot.grid(b=None, which='major', axis='both', )
  • b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
  • which:可选,可选值有 ‘major’、‘minor’ 和 ‘both’,默认为 ‘major’,表示应用更改的网格线。
  • axis:可选,设置显示哪个方向的网格线,可以是取 ‘both’(默认),‘x’ 或 ‘y’,分别表示两个方向,x 轴方向或 y 轴方向。
  • **kwargs:可选,设置网格样式,可以是 color=‘r’, linestyle=‘-’ 和 linewidth=2,分别表示网格线的颜色,样式和宽度。

实例:

1、使用默认值

import numpy as np
from matplotlib import pyplot as pltplt.rcParams['font.sans-serif'] = [u'SimHei'] # SimHei就是中文字体
# 因为设置了中文后,负号就乱码了,所以还要设置负号的编码
plt.rcParams['axes.unicode_minus'] = False # 修改坐标轴中符号的编码x=np.array([1,2,3,4,5])
y=np.array([1,4,9,16,25])
plt.plot(x,y,'.-.',linewidth=1)
plt.title('绘图',fontsize=25)
plt.xlabel('x轴',loc='right',fontsize=18)
plt.ylabel('y轴',loc='top',fontsize=18)plt.grid() # 使用默认值plt.show()  

在这里插入图片描述

2、自定义网格线

import matplotlib.pyplot as pltimport numpy as np
plt.rcParams['font.family']=['FangSong']x=np.array([1,2,3,4,5])
y=np.array([1,4,9,16,25])
plt.plot(x,y,'.-',linewidth=1)
plt.title('绘图',fontsize=25)
plt.xlabel('x轴',loc='right')
plt.ylabel('y轴',loc='top')
# 只有平行于x轴方向有网格线
plt.grid(axis='y',color='r',linestyle='--',linewidth=0.5)
plt.show()

在这里插入图片描述
参数说明:

  • color:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’
    青绿色,‘#008000’ RGB 颜色符串。
  • linestyle:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。
  • linewidth:设置线的宽度,可以设置一个数字。

五、Matplotlib 绘制多图

我们可以使用 pyplot 中的 subplot() 和 subplots() 方法来绘制多个子图。
subplot() 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个,在调用时只需要调用生成对象的 ax 即可。

1、subplot

subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)

以上函数将整个绘图区域分成 nrows 行和 ncols 列,然后从左到右,从上到下的顺序对每个子区域进行编号 1…N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 index 来设置。

设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:(1, 1), (1, 2)
plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。
plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

可以使用 suptitle函数设置公共的标题 注意是sup(超级),也就是父级标题

import matplotlib.pyplot as pltimport numpy as np#plot1
x1=np.array([1,2,3,4,5])
y1=np.array([1,4,9,16,25])
plt.subplot(1,2,1)
plt.plot(x1,y1)
plt.title('plot1')#plot2
x2=np.array([1,4,9,16,25])
y2=np.array([1,2,3,4,5])
plt.subplot(1,2,2)
plt.plot(x2,y2)
plt.title('plot2')plt.suptitle('subplot')#总标题suptitle
plt.show()#最后调用show方法

在这里插入图片描述

2、subplots()

subplots() 方法语法格式如下:

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, 
sharex=False, sharey=False, squeeze=True, 
subplot_kw=None, gridspec_kw=None, **fig_kw)
  • nrows:默认为 1,设置图表的行数。
  • ncols:默认为 1,设置图表的列数。
  • sharex、sharey:设置 x、y 轴是否共享属性,默认为 false,可设置为 ‘none’、‘all’、‘row’ 或 ‘col’。 False 或 none 每个子图的 x 轴或 y 轴都是独立的,True 或 ‘all’:所有子图共享 x 轴或 y 轴,‘row’ 设置每个子图行共享一个 x 轴或 y 轴,‘col’:设置每个子图列共享一个 x 轴或 y 轴。
  • squeeze:布尔值,默认为 True,表示额外的维度从返回的 Axes(轴)对象中挤出,对于 N1 或 1N 个子图,返回一个 1 维数组,对于 N*M,N>1 和 M>1 返回一个 2 维数组。如果设置为 False,则不进行挤压操作,返回一个元素为 Axes 实例的2维数组,即使它最终是1x1。
  • subplot_kw:可选,字典类型。把字典的关键字传递给 add_subplot() 来创建每个子图。
  • gridspec_kw:可选,字典类型。把字典的关键字传递给 GridSpec 构造函数创建子图放在网格里(grid)。
  • **fig_kw:把详细的关键字参数传给 figure() 函数。
import matplotlib.pyplot as plt
import numpy as np# 创建一些测试数据 -- 图1
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)# 创建一个画像和子图 -- 图2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')# 创建两个子图 -- 图3
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)# 创建四个子图 -- 图4
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)# 共享 x 轴
plt.subplots(2, 2, sharex='col')# 共享 y 轴
plt.subplots(2, 2, sharey='row')# 共享 x 轴和 y 轴
plt.subplots(2, 2, sharex='all', sharey='all')# 这个也是共享 x 轴和 y 轴
plt.subplots(2, 2, sharex=True, sharey=True)# 创建10 张图,已经存在的则删除
fig, ax = plt.subplots(num=10, clear=True)plt.show()

六、散点图、柱形图、饼图

1、Matplotlib 散点图

我们可以使用 pyplot 中的 scatter() 方法来绘制散点图。

scatter() 方法语法格式如下:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None,norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。c:点的颜色,默认蓝色 'b',也可以是个 RGB 或 RGBA 二维行数组。marker:点的样式,默认小圆圈 'o'。cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。vmin,vmax::亮度设置,在 norm 参数存在时会忽略。alpha::透明度设置,0-1 之间,默认 None,即不透明。linewidths::标记点的长度。edgecolors::颜色或颜色序列,默认为 'face',可选值有 'face', 'none', None。plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。**kwargs::其他参数。
import matplotlib.pyplot as plt
import numpy as npx=np.array([1,2,3,4,5])
y=np.array([1,2,3,4,5])
plt.scatter(x, y, s=25,c='r',alpha=0.6)# 大小为25像素、颜色为红色、透明度为0.6

在这里插入图片描述
两组数据

x1 = np.array([1,4,3,7,34])
y1 = np.array([78,23,19,16,25])
plt.scatter(x1, y1, c='r', s=25)x2 = np.array([22,15,34,51,21,4,12,45,1,47,5,78,34])
y2 = np.array([1,3,4,5,6,8,2,6,2,90,8,2,23])
plt.scatter(x2, y2, c='g', s=95)plt.show()  

在这里插入图片描述

2、Matplotlib 柱形图

我们可以使用 pyplot 中的 bar() 方法来绘制柱形图。

bar() 方法语法格式如下:

matplotlib.pyplot.bar(x, height, width=0.8, 
bottom=None, *, align='center', data=None, **kwargs)
x:浮点型数组,柱形图的 x 轴数据。height:浮点型数组,柱形图的高度。width:浮点型数组,柱形图的宽度。bottom:浮点型数组,底座的 y 坐标,默认 0。align:柱形图与 x 坐标的对齐方式,'center' 以 x 位置为中心,这是默认值。'edge':将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align='edge'**kwargs::其他参数。

例子:

import matplotlib.pyplot as plt
import numpy as npx=np.array(['google','baidu','jingdong','alibaba','taobao'])
y=np.array([11,32,34,24,15])
plt.bar(x,y)
plt.show()

在这里插入图片描述

垂直方向的柱形图可以使用 barh() 方法来设置:

import matplotlib.pyplot as plt
import numpy as npx=np.array(['google','baidu','jingdong','alibaba','taobao'])
y=np.array([11,32,34,24,15])
plt.barh(x,y)
plt.show()

在这里插入图片描述

设置柱形图宽度,bar() 方法使用 width 设置,barh() 方法使用 height 设置 height:

import matplotlib.pyplot as plt
import numpy as npx=np.array(['google','baidu','jingdong','alibaba','taobao'])
y=np.array([11,32,34,24,15])
plt.bar(x,y,width=0.2)
plt.show()

在这里插入图片描述

x = ['一月','二月','三月','四月','五月']
y = [20,56,23,12,33]
plt.barh(x,y, height=0.2)
plt.show()  

在这里插入图片描述

还可以使用color属性自定义每个柱形的颜色

x = ['一月','二月','三月','四月','五月']
y = [20,56,23,12,33]
plt.barh(x,y, height=0.2, color = ["#4CAF50","red","hotpink","#556B2F"])
plt.show()  

在这里插入图片描述

3、Matplotlib 饼图

我们可以使用 pyplot 中的 pie() 方法来绘制饼图。

注意:默认情况下,第一个扇形的绘制是从 x 轴开始并逆时针移动:

pie() 方法语法格式如下:

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, 
pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, 
counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, 
rotatelabels=False, *, normalize=None, data=None)[source]
x:浮点型数组,表示每个扇形的面积。explode:数组,表示各个扇形之间的间隔,默认值为0。labels:列表,各个扇形的标签,默认值为 None。colors:数组,表示各个扇形的颜色,默认值为 None。autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。shadow::布尔值 TrueFalse,设置饼图的阴影,默认为 False,不设置阴影。radius::设置饼图的半径,默认为 1。startangle::起始绘制饼图的角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。counterclock:布尔值,设置指针方向,默认为 True,即逆时针,False 为顺时针。wedgeprops :字典类型,默认值 None。参数字典传递给 wedge 对象用来画一个饼图。例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。textprops :字典类型,默认值为:None。传递给 text 对象的字典参数,用于设置标签(labels)和比例文字的格式。center :浮点类型的列表,默认值:(0,0)。用于设置图标中心位置。frame :布尔类型,默认值:False。如果是 True,绘制带有表的轴框架。rotatelabels :布尔类型,默认为 False。如果为 True,旋转每个 label 到指定的角度。
import matplotlib.pyplot as plt
import numpy as npy=np.array([15,35,25,5,20]) # 每块所占的大小
label=['A','B','C','D','E']#设置饼图标签
color=['r','b','g','y','g']#设置饼图颜色
plt.pie(y,labels=label,colors=color)
plt.show()

在这里插入图片描述

突出显示第二个扇形,并格式化输出百分比:

import matplotlib.pyplot as plt
import numpy as npy=np.array([15,35,25,5,20])
label=['A','B','C','D','E']#设置饼图标签
color=['r','b','g','y','g']#设置饼图颜色
explodes=[0,0.2,0,0,0]# 第二部分突出显示,值越大,距离中心越远
plt.pie(y,labels=label,colors=color,explode=explodes,autopct='%.2f%%')#格式化输出百分比
plt.show()

在这里插入图片描述

七、设置坐标轴的刻度

以设置x轴的刻度为例

xticks(ticks, [labels], **kwargs)

参数说明:
ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
**kwargs:用于设置标签字体倾斜度rotation和颜色color等外观属性。

不设置刻度时的样式

x = np.arange(1, 13)
y = np.arange(1, 13)plt.plot(x, y)
plt.show()

在这里插入图片描述

可以发现,本来x和y都是1-12,但是刻度却只显示偶数,这是Matplotlib默认的样式。

我们可以自己定义刻度

x = np.arange(1, 13)
y = np.arange(1, 13)# 第一个参数是x轴刻度间隔,x是包含1-12的数组
# calendar.month_name[1:13] 获取1-12月份对应的英文名 即 1 - January
# rotation 设置label的旋转角度
# color设置label字体颜色
plt.xticks(x,calendar.month_name[1:13],rotation=45,color='b',fontsize=14)
plt.yticks(y)
plt.plot(x, y)
plt.show()

在这里插入图片描述

另一种情况就是当x轴每个label太长时,需要增大刻度,减少label

x = ['2021/3/4','2021/2/14','2021/9/4','2021/5/24','2021/3/14','2021/7/4','2021/8/14','2021/1/14']
y = [100,200,300,400,500,600,700,800]
plt.plot(x, y)
plt.show()

在这里插入图片描述
x轴太密集,不方便观看

x = ['2021/3/4','2021/2/14','2021/9/4','2021/5/24','2021/3/14','2021/7/4','2021/8/14','2021/1/14']
y = [100,200,300,400,500,600,700,800]
plt.xticks(range(1,len(x),2), ['日期%s'%i for i in x[1:len(x):2]], rotation=45)
plt.plot(x, y)
plt.show()

在这里插入图片描述

这样x轴的刻度减少了一半

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

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

相关文章

爬虫框架- feapder + 爬虫管理系统 - feaplat 的学习简记

文章目录 feapder 的使用feaplat 爬虫管理系统部署 feapder 的使用 feapder是一款上手简单&#xff0c;功能强大的Python爬虫框架 feapder 官方文档 文档写的很详细&#xff0c;可以直接上手。 基本命令&#xff1a; 创建爬虫项目 feapder create -p first-project创建爬虫 …

根据源码,模拟实现 RabbitMQ - 实现消息持久化,统一硬盘操作(3)

目录 一、实现消息持久化 1.1、消息的存储设定 1.1.1、存储方式 1.1.2、存储格式约定 1.1.3、queue_data.txt 文件内容 1.1.4、queue_stat.txt 文件内容 1.2、实现 MessageFileManager 类 1.2.1、设计目录结构和文件格式 1.2.2、实现消息的写入 1.2.3、实现消息的删除…

如何将常用的jdbc方法封装起来???

你是否还在为每次新建项目连接数据库而烦恼&#xff1f;&#xff1f;&#xff1f;&#xff08;教你一次代码&#xff0c;简单完成每次连接&#xff09; 1.建立maven项目 还没下载安装或者不会建立maven项目的可以看这里哦&#xff1a;maven的下载安装与配置环境变量&#xff0…

javascript期末作业【三维房屋设计】 【源码+文档下载】

1、引入three.js库 官网下载three.js 库 放置目录并引用 引入js文件: 设置场景&#xff08;scene&#xff09; &#xff08;1&#xff09;创建场景对象 &#xff08;2&#xff09;设置透明相机 1,透明相机的优点 透明相机机制更符合于人的视角,在场景预览和游戏场景多有使用…

VALN-hybrid模式

实验拓扑及要求 一、实验思路 1.R1-R3按要求配置&#xff0c;R2不划分vlan使其全部都可以访问 2.交换机和路由器的交换机直连接口设为hybrid模式且R4-R6不带vlan标签访问路由器 3.交换机和交换机的两个直连接口设为hybrid模式且只允许R4-R6所在vlan标签通过 4.R4-R6只允许其…

怎么对视频进行压缩?

怎么对视频进行压缩&#xff1f;视频压缩&#xff0c;我们都知道是将视频文件进行压缩变小的过程&#xff0c;是我们日常办公中较为常用的手段。现如今&#xff0c;在视频技术不断发展与创新的基础上&#xff0c;视频分辨率也在不断提高&#xff0c;进而导致文件占有量也非常大…

2023河南萌新联赛第(五)场:郑州轻工业大学

A.买爱心气球 原题链接 : 登录—专业IT笔试面试备考平台_牛客网 博弈论 : #include <iostream> using namespace std; int t,n,m; string s1 "Alice",s2 "Bob"; int main() {cin>>t;while(t--){cin>>n>>m;if (n % 3 0) {cou…

【HarmonyOS】codelab在hvigor版本2.4.2上无法运行问题

【关键字】 HarmonyOS、codelab、hvigor 【问题描述】 有cp反馈集成鸿蒙codelab报错。 下载音乐专辑示例文件&#xff08;一次开发&#xff0c;多端部署-音乐专辑&#xff08;ArkTS&#xff09; (huawei.com)&#xff09;后构建项目&#xff0c;显示找不到2.5.0的hvigor。 …

数学建模之“层次分析法”原理和代码详解

一、层次分析法简介 层次分析法&#xff08;Analytic Hierarchy Process&#xff0c;AHP&#xff09;是一种用于多准则决策分析和评估问题的定量方法&#xff0c;常用于数学建模中。它是由数学家托马斯赛蒂&#xff08;Thomas Saaty&#xff09;开发的。 层次分析法将复杂的决…

读发布!设计与部署稳定的分布式系统(第2版)笔记33_混沌工程

1. 康威定律 1.1. 梅尔文康威 1.1.1. Melvin Conway 1.1.2. 1968年 1.1.3. 在设计系统时&#xff0c;组织受制于其自身的沟通结构&#xff0c;这使得它设计的系统结构与沟通结构相一致。 1.1.3.1. 社会学现象 1.2. 要在系统内部或系统之间构建接口&#xff0c;两个人必须…

Spring事件监听源码解析

spring事件监听机制离不开容器IOC特性提供的支持&#xff0c;比如容器会自动创建事件发布器&#xff0c;自动识别用户注册的监听器并进行管理&#xff0c;在特定的事件发布后会找到对应的事件监听器并对其监听方法进行回调。Spring帮助用户屏蔽了关于事件监听机制背后的很多细节…

php_mb_strlen指定扩展

1 中文在utf-字符集下占3个字节,所以计算出来长度为9。 2 可以引入php多字节字符的扩展&#xff0c;默认是没有的&#xff0c;需要自己配置这个函数 3 找到php.ini文件&#xff0c;去掉;extension mbstring的注释&#xff0c;接着重启apache服务 可以看到准确输出的中文的长度…

Vue elementui 实现表格selection的默认勾选,翻页记录勾选状态

需求&#xff1a;当弹出一个列表页数据&#xff0c;对其进行筛选选择。 列表更新&#xff0c;填充已选数据 主要使用toggleRowSelection 代码如下&#xff1a; <el-table v-loading"loading" :data"drugList" selection-change"handleSelection…

Python 的下一代 HTTP 客户端

迷途小书童 读完需要 9分钟 速读仅需 3 分钟 1 环境 windows 10 64bitpython 3.8httpx 0.23.0 2 简介 之前我们介绍过使用 requests ( https://xugaoxiang.com/2020/11/28/python-module-requests/ ) 来进行 http 操作&#xff0c;本篇介绍另一个功能非常类似的第三方库 httpx&…

7-2 求矩阵各行元素之和

分数 15 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求编写程序&#xff0c;求一个给定的mn矩阵各行元素之和。 输入格式&#xff1a; 输入第一行给出两个正整数m和n&#xff08;1≤m,n≤6&#xff09;。随后m行&#xff0c;每行给出n个整数&#xff0c;其间…

【uniapp】中 微信小程序实现echarts图表组件的封装

插件地址&#xff1a;echarts-for-uniapp - DCloud 插件市场 图例&#xff1a; 一、uniapp 安装 npm i uniapp-echarts --save 二、文件夹操作 将 node_modules 下的 uniapp-echarts 文件夹复制到 components 文件夹下 当前不操作此步骤的话&#xff0c;运行 -> 运行到小…

JavaScript函数式编程【进阶】

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…

prompt-engineering-note(面向开发者的ChatGPT提问工程学习笔记)

介绍&#xff1a; ChatGPT Prompt Engineering Learning Notesfor Developers (面向开发者的ChatGPT提问工程学习笔记) 课程简单介绍了语言模型的工作原理&#xff0c;提供了最佳的提示工程实践&#xff0c;并展示了如何将语言模型 API 应用于各种任务的应用程序中。 此外&am…

如何解决使用npm出现Cannot find module ‘XXX\node_modules\npm\bin\npm-cli.js’错误

遇到问题&#xff1a;用npm下载组件时出现Cannot find module ‘D&#xff1a;software\node_modules\npm\bin\npm-cli.js’ 问题&#xff0c;导致下载组件不能完成。 解决方法&#xff1a;下载缺少的npm文件即可解决放到指定node_modules目录下即可解决。 分析问题&#xff1…

关于docker-compose up -d在文件下无法运行的原因以及解决方法

一、确认文件下有docker-compose.yml文件 二、解决方法 检查 Docker 服务是否运行&#xff1a; 使用以下命令检查 Docker 服务是否正在运行&#xff1a; systemctl status docker 如果 Docker 未运行&#xff0c;可以使用以下命令启动它&#xff1a; systemctl start docker …