技术标签: python plot matplotlib Python科学计算和数据分析
matplotlib对在二维图绘图方面非常强大,除了散点图、曲线图、柱状图、饼图等基本图形外,还支持辅助直线、二维标量场、矢量场、统计绘图、非结构三角网格绘图以及信号谱分析。
Matplotlib系列将Matplotlib的知识和重点API,编制成思维导图和重点笔记形式,方便记忆和回顾,也方便应用时参考,初学者也可以参考逐步深入学习。
每个绘图函数都有很多设置线条、点、颜色的参数,建议日常绘图时,更多的使用
plt.style.use('...')
设置样式。而不是自行设置所有参数。
将x,y绘制为“线”和/或“点”。可以只显示点、只显示线,或者点、线都显示。
ax.plot([x], y, [fmt])
ax.plot([x], y, [fmt],[x2],y2,[fmt],...)
fmt = '[marker][line][color]'
:fmt为字符串由点样式、颜色、线样式组成'+r--'
:点样式为+,颜色为红色,线样式为虚线import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.linspace(0, 4*np.pi,50)
y1=np.sin(x)
y2=np.cos(x)
y3=np.cos(x+np.pi)
#绘制'line1'。线条为灰色,线型为点划线('-.'),线宽为1
ax.plot(x,y1,c='gray', linestyle='-.', linewidth=1, label='line1')
#绘制'line2'。线条为红色,线型为虚线('--')
ax.plot(x,y2,'r--',label='line2')
#绘制'line3'。同时显示点和线。
#点大小为10,填充颜色为绿色,边缘颜色为红色,边缘宽度为1
#线为蓝色实线,线条宽度为2
ax.plot(x,y3,'ob-', mfc='g', mec='r', ms=10, linewidth=2 ,label='line3')
ax.legend(loc="upper right")#设置图例
plt.show()
将x,y绘制为不同大小和颜色的散点图。
ax.scatter(x,y)
ax.scatter(x,y,s=s,c=c,alpha=0.5)
比较特别的,用浮点数表示颜色,表示从当前colormap映射得到的颜色。并非所有颜色参数都可以浮点数表示(比如plot就不行)。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.random.randn(50)*10
y=np.random.randn(50)*10
s=(np.random.randn(50)*10)**2
c=np.random.randn(50)*10
#绘制散点图。颜色为c,大小为s(单位points^2),透明度为0.5
ax.scatter(x,y,s=s,c=c,alpha=0.5)
plt.show()
将y绘制成柱状图(bar函数绘制垂直柱状图,barh函数绘制水平柱状图)。
ax.bar(x, height)
, ax.barh(y, width)
ax.bar((x, height ,tick_label=[...], color=c, lw=1, edgecolor=c1))
比较特别的,用浮点数表示颜色,表示从当前colormap映射得到的颜色。并非所有颜色参数都可以浮点数表示(比如plot就不行)。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.arange(6)
y=np.random.uniform(0,10,6)
#ax.bar(x,y) #绘制简单柱状图。用x坐标文本标签
#制定文本作为标签,填充灰色,描边宽度为1,颜色为橙色
ax.bar(x,y,tick_label=list('abcdef'),color='gray',lw=1,ec='orange')
plt.show()
网上非常流行的雷达图,实际上就是极坐标下的柱状图。
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(202201)
ax = plt.subplot(projection='polar')
theta = np.linspace(0, 2 * np.pi, 20)
r = 10 * np.random.rand(20)
width = np.pi / 4 * np.random.rand(20)
colors = plt.get_cmap('hsv')(r/10)
ax.bar(theta, r, width=width, color=colors, alpha=0.5)
plt.show()
将y绘制成柱状图(bar函数绘制垂直柱状图,barh函数绘制水平柱状图)。
ax.pie(x)
:绘制简单饼状图。无标签,默认颜色设置ax.bar(x, labels=[...], colors=[...])
explode=[0,0.2,0,0]
:第i个数字表示第i个饼炸开距离(数值×半价=距离)
wedgeprops={'lw':2,'ec':'lightblue'}
:设置边线参数,lw、ec是linewidth,edgecolor的缩写。wedgeprops={'width':0.2}
:环形饼图,环宽度与半径比例为0.2frame参数设置是否显示坐标系,默认False,与plt.axis(‘off’)相同。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.arange(6)
#ax.pie(x) #绘制简单饼状图。无标签,默认颜色设置
ax.pie(x,
labels=list('abcdef'), #设置标签
explode=[0,0,0.1,0,0,0], #第2个饼图炸开
wedgeprops={'lw':2,'ec':'lightblue'}) #描边
#plt.axis('off') #不显示坐标轴
plt.show()
通过在pie函数的wedgeprops(字典)参数中设置'width':0.2
,可以创建环形饼图,环宽度与半径比例为0.2
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(202201)
fig, ax = plt.subplots()
val1 = np.abs(np.random.randn(3))
val2 = np.abs(np.random.randn(5))
cmap = plt.colormaps["tab20c"]
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap([9,1,3,5,2])
ax.pie(val1, radius=1, colors=outer_colors,wedgeprops=dict(width=0.3, edgecolor='w'))
ax.pie(val2, radius=0.7, colors=inner_colors,wedgeprops=dict(width=0.3, edgecolor='w'))
ax.set_aspect(1)
plt.show()
将x,y绘制成火柴图。
ax.stem(x,y)
ax.stem(x,y,linefmt='-',markerfmt='C0o')
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.arange(6)
y=np.random.uniform(1,10,6)
#ax.stem(x,y)
ax.stem(x,y,
linefmt="--",
markerfmt="C2o")
plt.show()
fill_between在(x,y1)和(x,y2)曲线之间填充颜色。
fill_betweenx在(x1,y)和(x2,y)曲线之间填充颜色。
ax.fillbetween(x,y1,y2)
:在y方向y1,y2之间填充ax.fill_betweenx(y,x1,x2)
:在x方向x1,x2之间填充
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.linspace(0,2*np.pi,200)
y1=np.sin(x)
y2=np.cos(x)
ax.fill_between(x,y1,y2,color='C2') #填充y1,y2之间的区域
#ax.fill_between(x,y1,y2,where=y2>y1) #只填充y2>y1的区域
plt.show()
对多个曲线(x,y1,y2,y3…)依次叠加绘制面积填充图。
ax.stackplot(x,y1,y2,...)
:y1,y2,y3…长度和x相同ax.stackplot(x,y)
:y为m行长度为len(x)的数组。即y相当于[y1,y2,y3...]
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
#准备数据
x=np.linspace(0,2,30)
y1=np.full(30,0.2)
y2=np.full(30,0.2)
y3=np.full(30,0.3)
y4=(x+0.5)**1.1
ax.stackplot(x,y1,y2,y3,y4)
#ax.stackplot(x,y1,y2,y3,y4,baseline="sym",colors=['r','b'])
plt.show()
axhline(y=0,xmin=0,xmax=1)
:水平线,起始位置(xmin,xmax)axvline(x=0,ymin=0,ymax=1)
:垂直线,起始位置(ymin,ymax)axline((0,0),(1,1))
:通过两点的无限长直线import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
ax.axhline(y=1)
ax.axvline(x=1)
ax.axhline(y=3,xmin=0.1,xmax=0.8,c='r')
ax.axvline(x=3,ymin=0.1,ymax=0.8,c='r')
ax.axline((0,0),(1,1))
ax.set_xlim(0,5)
ax.set_ylim(0,5)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
ax.hlines([1,2,3],0,4)
ax.vlines([3,2,1],0.5,4)
ax.set_xlim(0,5)
ax.set_ylim(0,5)
plt.show()
ax.axhspan(ymin, ymax, xmin=0, xmax=1)
:绘制高度范围ymin到ymax的竖线ax.axvspan(xmin, xmax, ymin=0, ymax=1)
:绘制宽度范围xmin到xmax的水平线import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
ax.axhspan(1,2)
ax.axvspan(2,3)
ax.set_xlim(0,5)
ax.set_ylim(0,5)
plt.show()
数据显示为一个二维图片。(颜色填充二维网格)
ax.imshow(X)
:X数据绘制为图像
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
X=np.random.randn(9,9)
ax.imshow(X)
ax.axis('off')
plt.show()
伪彩色图片显示。功能类似imshow,但是不需要x,y坐标等间距。
ax.pcolor([X,Y],Z)
:X,Y省略时,与C参数与imshow的参数用法接近
ec='w'
:设置edgecolor参数。色块之间显示边框线。alpha=0.5
:设置色块透明度pcolor与imshow的不同:
pcolormesh与pcolorfast比pcolor更快,参数一致
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x,y=np.mgrid[0:9,0:9]
c=np.random.randn(9,9)
ax.pcolor(x,y,c)
#ax.pcolor(c) #注意,因为mgrid的顺序问题,与不省略x,y绘制的图颜色顺序不同。
ax.axis('off')
plt.show()
绘制等值线,或者等高线。
ax.contour([X,Y],Z)
:根据Z值绘制等值线,也就是等高线。
levels=5
:设置等高线数量,也可以用列表直接指定,比如levels=[1,2,3]
。z[0,0]
在左下角。'upper’设置z[0,0]
在左上角。colors和cmaps参数
:两个参数不能同时设置,会出错。
contourf与contour用法完全一致,contourf会在等高线间填充颜色。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x,y=np.mgrid[-1:1:0.1,-1:1:0.1]
z=x**2+y**2
#ax.contour(x,y,z)
#ax.contourf(x,y,z)
#ax.contour(x,y,z,levels=15,origin='upper')
ax.contourf(x,y,z,levels=15,origin='upper')
plt.show()
绘制表示矢量场的箭头图。比如速度场就是典型的矢量场
ax.quiver([X,Y],U,V)
:在x,y位置绘制箭头,箭头x,y方向的大小分量分别为u,v。。
angle='uv'
:箭头方向参数。默认u表示x轴分量,v表示y轴分量。'xy’表示箭头方向为(x,y)指向(x+u,y+v)units='width'
:箭头大小单位,默认取系数×width。
headwidth,headlength等参数可以调整箭头头部大小。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
plt.style.use('ggplot')
x,y=np.mgrid[-1:1:0.1,-1:1:0.1]
u=x+y
v=y-x
#ax.quiver(x,y,u,v)
ax.quiver(x,y,u,v,units='xy')
plt.show()
绘制表示矢量场的流线图。
ax.streamplot(x,y,u,v)
:x,y为坐标参数,u,v为矢量方向分量参数。
linewidth, arrowsize, arrowstyle等参数可以设置流线细节,需要用的时候再查API就ok
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
y,x=np.mgrid[-1:1:0.1,-1:1:0.1] #streamplot要求x每行必须相同
u=x+y
v=y-x
#ax.streamplot(x,y,u,v)
ax.streamplot(x,y,u,v,density=0.5, color=np.random.randn(20,20))
plt.show()
统计数据分布绘制直方图。
ax.hist(x)
:数据x按若干个区间统计分布个数,绘制成直方图。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x=np.random.randn(1000)
#ax.hist(x)
ax.hist(x,bins=8,ec='w',lw=1,color="C1") #设置分组数,设置edgecolor和linewidth
plt.show()
统计二维数据分布绘制在平面上,用颜色表示分布数量。
ax.hist2d(x,y)
:数据x,y分布按若干个区间统计数据分布个数,绘制成平面图,用颜色表示分布数量。
bins=[5,5]
分别设定x,y轴区间数。import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x=np.random.randn(1000)
y=np.random.randn(1000)
#ax.hist2d(x,y)
h=ax.hist2d(x,y,bins=20,cmap="Oranges") #设置分组数
#ec='w',lw=1,density=True)。设置edgecolor和linewidth
plt.colorbar(h[3],ax=ax)
plt.show()
根据数据x的每一列数据的四分位数(最小、25%,中位数、75%、最大,分别称为Q0-5)值绘制箱型图。
boxplot函数与标准的箱型图略有不同,Q1-1.5(Q3-Q1),Q5用Q3+1.5(Q3-Q1)。超出Q0-Q5范围的值单独用o表示。
ax.boxplot(x)
:绘制x每一列的箱型图
Q0=Q1-whis*(Q3-Q1)
,Q5=Q3+whis*(Q3-Q1)
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x=np.random.randn(100,5) #5列,所以绘制5个箱型图
#ax.boxplot(x)
ax.boxplot(x,sym="r+",whis=1.25) #设置分组数
plt.show()
在坐标x,y处,根据yerr绘制上下误差。
ax.errorbar(x,y,yerr)
:类似plot绘制x,y折线或散点图,并根据yerr绘制误差。
"[markerstyle][color][linestyle"
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x = np.arange(-5,5,0.5)
y = np.sin(x/2)
yerr = np.random.randn(20)/5
#ax.errorbar(x,y,yerr)
ax.errorbar(x,y,yerr,fmt='o-',lw=2,capsize=4,c="C2") #设置x,y样式及线宽,设置误差样式
plt.show()
在坐标x,y处,根据yerr绘制上下误差。
ax.hexbin(x,y)
:类似hist2D,对x,y坐标轴分为若干个区间,统计区间内数值出现次数,绘制六边形颜色表示。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
plt.style.use('_mpl-gallery-nogrid')
x = np.random.randn(1000)
y = x+np.random.randn(1000)/5
#ax.hexbin(x,y)
h=ax.hexbin(x,y,gridsize=20,edgecolors='w')
plt.colorbar(h)
plt.show()
对于(x,y)坐标处的高度z,可以使用本类函数绘制等值线,并填充三角面。而不需要先网格化数据,然后使用contour函数绘制等值线。
contour函数需要x,y坐标需要像meshgrid输出一样,结构化的。
在非结构化三角形网格上绘制等值线。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x=np.random.randn(100)
y=np.random.randn(100)
z=x**2+y**2
ax.plot(x, y, 'o', markersize=2, color='lightgrey')
#ax.tricontour(x,y,z)
ax.tricontourf(x,y,z,levels=8,cmap="Oranges")#colors和cmap不能同时设置
plt.show()
为非结构化三角网格绘制伪彩色图。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x=np.random.randn(100)
y=np.random.randn(100)
z=x**2+y**2
ax.plot(x, y, 'o', markersize=2, color='lightgrey')
ax.tripcolor(x,y,z)
plt.show()
把非结构三角网格绘制成曲线或者散点图。
不需要z参数
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
x=np.random.randn(100)
y=np.random.randn(100)
#ax.triplot(x,y)
ax.triplot(x,y, 'o-', markersize=2, color="C0", mfc='lightgrey',mec='lightgray')
plt.show()
频谱相关
绘制x的自相关图。
自相关指,序列x,前后自己相关。即{Xt}和{Xt+k}之间的相关系数。
从两个随机变量之间相关系数,变为了一个随机变量时间前后(滞后k期)相关系数。
ax.acorr(x)
:绘制x的自相关图,默认最大滞后期为10
自相关图横坐标为滞后期,即k,竖轴为相关系数。
相关系数为-1~1之间浮点数。-1为负相关,1为正相关,0为不相关。
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
t=np.linspace(0,8*np.pi,100) #4个周期
x=np.sin(t)
#ax.acorr(x)
ax.acorr(x,maxlags=25)
plt.show()
绘制x和y之间的互相关图。
相关系数
x[n+k]
与y[n]
计算,k为滞后期
ax.xcorr(x,y)
:绘制x,y的相关图,默认最大滞后期为10
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
t=np.linspace(0,8*np.pi,100) #4个周期
x1=np.sin(t)
x2=np.cos(t)
#ax.xcorr(x1,x2)
ax.xcorr(x1,x2,maxlags=25)
plt.show()
绘制功率谱密度。
PSD——Power Spectral Density 是表征信号的功率能量与频率的关系的物理量,单位频带的信号功率就被称之为功率谱。。PSD经常用来研究随机振动信号。
功率谱与频谱不太一样。
- 功率谱的计算需要信号先做自相关,然后再进行FFT运算。
- 频谱的计算则是将信号直接进行FFT就行了。
- 功率谱是对信号研究,不过它是从能量的方面来对信号研究的。
ax.psd(x)
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
t=np.linspace(0,8*np.pi,100) #4个周期
x1=np.sin(t)
#ax.xcorr(x1,x2)
ax.psd(x1)
plt.show()
计算两个信号的交叉频谱密度(cross spectral density)
交叉谱,或者交叉频谱用来表征两个序列(时间相关)在某个(某些)频率组分上的相关程度,取值范围是0-1。
ax.csd(x,y)
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure() #创建画布
ax=fig.subplots() #创建图表
np.random.seed(202201)
t=np.linspace(0,8*np.pi,100) #4个周期
x1=np.sin(t)
x2=np.cos(t)
ax.csd(x1,x2)
plt.show()
功率谱密度是功率沿频率轴的分布。信号的PSD是信号的傅立叶变换的自相关
互谱密度相同,但是使用互相关,因此您可以使用其平方模块找到两个信号在给定频率下共享的功率,并使用其自变量找到该频率下两个信号之间的相移。
互谱密度可以用于识别嘈杂的LTI系统的频率响应:如果噪声与系统的输入或输出不相关,则可以从输入和输出的CSD中找到其频率响应。
个人总结,部分内容进行了简单的处理和归纳,如有谬误,希望大家指出,持续修订更新中。
修订历史版本见:https://github.com/hustlei/AI_Learning_MindMap
未经允许请勿转载。
文章浏览阅读9.7k次,点赞13次,收藏85次。在 github上有一个经典的状态机r-lyehv1.0.0,该状态机使用C++开发(支持C++11),单头文件,轻量级,跨平台,支持lambda表达式,使用非常方便,大大地简化了代码,使业务逻辑更清晰,是一个不错的fsm库,值得推荐。下载链接:下载下面对源该经典状态源代码以及示例以中文注释的方式进行剖析,以及大家更好地了解其原理及使用。//每个状态机都有'init', 'quit', 'push', 'back'四个成员成员函数//init:在创建某一状态时调用 ;quit在某一状态结束时.._c++状态机fsm源码剖析
文章浏览阅读1.1w次,点赞24次,收藏110次。 WGAN-GP又称为具有梯度惩罚的WGAN,一般可以替代WGAN1.WGAN:基于推土机距离原理的GAN(1)原始GAN的问题及原因 实际训练中,GAN存在训练困难、生成器和判别器的loss无法指示训练过程、生成样本缺乏多样性等问题。这与GAN的机制有关。 GAN最终达到对抗的纳什均衡只是一个理想状态,而实际情况中得到的结果都是中间状态。大部分情况是,随着训练的次数越多判别器D的效果越好,一直可以将生成器G的输出和真实样本区分开。 这是因为生成器G是从低维向高位空间映射,其生成的样本分布_wgan-gp
文章浏览阅读499次。 金融业的数字化转型引发持续关注。数字金融、智能金融、区块链等关键词都得到了热烈讨论。数据,作为一种新型生产要素,早已成为推动国经济质量发展的重要动能。数据智能驱动金融业蝶变,“一切业务数据化,一切数据业务化”势不可挡。 我国金融数字化水平处于领先地位 随着大数据、云计算、区块链、AI、5G等基础技术迅速发展,我国的数字金融也打开了新的局面。 金融业的数字化转型过程大致分为三个阶段:最初,金融业从长尾用户切入,利用互联网优势,逐步打开市场。其后,更多新技术应用到更多金融场景之中,数据智能转型加_金融科技识别抵押物价值
文章浏览阅读50次。以下内容都是本人之前学习的一些笔记很多是摘自网上并非完全原创,特此申明。最简单的一句js:<html><body><script type="text/javascript">document.write("Hello World!");</script></body></html>..._web javascript复习
文章浏览阅读7.3k次,点赞7次,收藏57次。rk3588 rk356x rv1126/1109 mpp编译 _rk3588 与rv1109
文章浏览阅读2.1k次,点赞4次,收藏12次。第一步:登录百度图片官网,截图如下所示:注意点一:开头必须是https(如上图所示,出现锁的标志),不能是http,否则后期下载图片文件会出错第二步:输入关键字,页面加载出来之后,按F12进入开发者模式,由于百度图片ajax动态加载,点击network选项卡,重新刷新页面,查看XHR数据,截图如下所示:第三步:分析多个XHR,得出规律,每一个页面所请求的url所携带的参数只有pn,rn,..._爬虫+排版
文章浏览阅读9.5k次,点赞3次,收藏14次。1、将要打包的项目设为当前工程2、开始 —> 组态王6.55 —>工程打包工具。3、在弹出的窗口中,找到组态王安装路径Kingview文件夹中的KVPacket.Prj文件,单机选中,之后点击打开。4、而后跳出的生成路径,无所谓,自己是设定好了,如:D:\chenzhutaibuild,建议放在D盘,别问为什么,哈哈5、如果需要添加相应的读写文件等其它高级操作,则接着点击上图中的“高级”按钮6、这里暂时不需要,所以直接点击生成按钮7、..._组态王打包成exe程序
文章浏览阅读1.5w次。Python脚本在Linux后台执行加个&就行了在Windows起Python服务总有不畅查了一下,可以用start /b python xxx.py后台运行,这招虽然不影响cmd操作,但是关闭cmd窗口后服务也死了解决这个问题挺麻烦的,需要以Windows服务的方式挂起来第一步,将Python脚本打包成exe可执行文件,详见: 用python_python 可以实现window系统下 进程挂起吗
文章浏览阅读667次。今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符。虽然只是一个警告,但看着实在不爽,更重要的是,警告在某些情况下,可能正是bug的来源,并且这类bug往往非常难以定位。废话不多话,下面来解决问题。 看编译器给出的提示,是告诉我们,类型库当中的符号和系统符号有重名,同时也给出了解决方法,就是..._类型库中的标识符已经是宏;使用“rename”限定符
文章浏览阅读1.3w次,点赞14次,收藏99次。原文链接:Downsampling a PointCloud using a VoxelGrid filter点云文件下载:table_scene_lms400.pcd在本篇教程中,我们将使用体素化的方式对点云数据进行下采样。原理下采样:减少点云数据集中点云数量体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能,但是会移动点的位置。 此外体素滤波器可以去除一定程度的噪音点及离群点。主要功能是用来进行降采样。它的原理是根据输入的点云,首先计算一个能够刚好包裹住该点云的立.._体素下采样
文章浏览阅读1.2w次,点赞30次,收藏140次。参加的是2020年的微信小程序大赛,我们的作品介绍文档仅供参考。可以去我的资源下载—>>>微信小程序大赛作品介绍文档部分展示(一共23页):参加的是2020年的微信小程序大赛,我们的作品介绍文档仅供参考。可以去我的资源下载—>>>微信小程序作品介绍文档..._竞赛作品介绍文档怎么写
文章浏览阅读1.8w次,点赞2次,收藏30次。原文链接:https://blog.csdn.net/ling_cmd/article/details/81063706def excel2m(path): data = xlrd.open_workbook(path) table = data.sheets()[0] nrows = table.nrows # 行数 ncols = table.ncols ..._python excel 将一行转换为一个三角矩阵