Python科学计算与数据处理-绘制精美的图表_第1页
Python科学计算与数据处理-绘制精美的图表_第2页
Python科学计算与数据处理-绘制精美的图表_第3页
Python科学计算与数据处理-绘制精美的图表_第4页
Python科学计算与数据处理-绘制精美的图表_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python科学计算与数据处理一绘制精美的图表Matplotlib是python中最著名的绘图库。matlab提供了一套类似于MATLAB的命令API,非常适合交互式绘图。而且可以作为绘图控件方便地嵌入到图形用户界面应用程序中。它的文档非常完整,在图库页面中有数百个缩略图。打开后,有源程序。因此,如果你需要画一个特定类型的地图,你基本上可以通过浏览、复制和粘贴来完成。显示页面地址:快速绘图快速绘图matlabplot库的pyplot子库提供了一个类似MATLAB的绘图API,方便用户快速绘制三维图表。(matplotlibsimpleplotpy)pylab模块matplotlib还提供了一个名为pylab的模块,该模块包含了numpy和pyplot中常用的许多功能,以方便用户快速计算和绘制,并可用于IPython中的快速交互使用。快速绘图库中的快速绘图函数库可以通过以下语句加载:下一步调用图形创建一个绘图对象并使其成为当前绘图对象。figsize参数允许您指定绘图对象的宽度和高度单位。英寸dpi参数指定绘图对象的分辨率,即每英寸多少像素。默认值为。因此,本例中创建的图表窗口的宽度为*二像素。IMPORTMATplotLIBPYPLOTASPTLTPLTFIGURE(FigureSize=(,))也可以在不创建绘图对象的情况下进行快速绘图。直接调用下面的PLOT函数直接绘制一个绘图matplotlib将自动创建一个绘图对象。如果需要同时绘制多个图表,可以通过传递一个整数参数来指定图形图标的序列号。如果具有指定序列号的图形对象已经存在,它不会创建新对象,而只会使其成为当前图形对象。以下两行程序通过调用绘图函数在当前绘图对象中绘制:绘图绘图绘图(x,y,label=$sin(x)$,color=red,linewidth=)绘图绘图绘图(x,z,b,label=$cos(x)$)调用绘图函数的方法很灵活。在第一句传递x,y数组进行绘图后,使用关键参数指定各种属性:bulllabel:为绘制的曲线命名。这个名字显示在图例中。只要在字符串前后添加##$###符号matplotlib,就将使用其嵌入式latex引擎绘制的数学公式。Bullcolor:指定曲线的颜色bulllinewidth:指定曲线的宽度第三个参数lsquorsquob''指定曲线的颜色和线型Pltlot(x,y,label=$sin(x)$,color=red,lineWidth=)Pltlot(x,z,b,Label=$cos(x)$)快速绘制下一步,绘图对象的各种属性是通过一系列函数来设置的:bulllabel:设置X轴和Y轴的文本bulltitle:设置图表的标题bullylim:设置Y轴的范围bulllegend:显示图表最后,调用pltshow()来显示所有创建的绘图对象。PLTLabel(time(s))PLTLabel(volt)PLTtitle(pyplotfirstexample)PLTlim(,)pltllegend()quickdrawingimportnumppyanpmportationplotlibpyplotaspltx=NPLspace(,)y=npsin(x)z=npcos(x**)PLTfigsize=(,))pltplot(x,y,label=$sin(x)$,color=red,linewidth=)PLTPLTplot(xz,b,Label=$cos(x)图像格式由图像文件的扩展名决定。以下程序将当前图表保存为testpng,并通过dpi参数指定图像的分辨率,以便输出图像的宽度为X二像素。事实上,您不需要调用show()来显示图表。您可以使用保存图()将图表直接保存为图像文件。使用这种方法,您可以很容易地编写程序RunmatPlolibSimplePlotsAthaveFig(TestPng,DPI=)来快速绘制多轴图。一个绘图对象(图形)可以包含多个轴。在MatPlotLib中,您可以使用轴来表示绘图区域,这可以理解为子图。在上面的第一个示例中,绘图对象仅包括一个轴,因此仅显示一个轴(轴)。您可以使用子图功能快速绘制多轴图表。子图函数的调用形式如下:子图(numRows,numCols,Plotnum)快速绘图子图将整个绘图区域分成Numrows行和Numcols子区域列,然后从左到右从上到下对每个子区域进行编号。左上角子区域的编号是。如果三个数字numRowsnumCols和plotNum小于,它们可以缩写为整数,例如子图()和子图(一)是相同的。子图在由plotNum指定的区域中创建轴对象。如果新创建的轴与先前创建的轴重叠,则先前的轴将被删除。以下快速绘制过程创建总共有轴的行和列。通过axisbg参数为每个轴设置不同的背景颜色。如果希望轴占据整个行或列,可以调用子图形:对于IDX,ColorineNumerate(RGBYCK):PLT子图形(IDX,Axisbg=color)pltshow()pltsubplot()#第一行左pltsubplot()#第一行右pltsubplot()#第二个全行pltshow()快速绘图当绘图对象中有多个轴时,可以通过工具栏中的“配置子图形”按钮交互式调整轴间距以及轴与边框之间的距离。如果你想在程序中进行调整,你可以调用subplotsadjust函数,它有几个关键参数,如左、右、下、上、下空间、空间等等。这些参数的值是介于之间的小数,它们是由绘图区域的宽度和高度标准化的坐标或长度。快速绘制子图()返回它创建的轴对象。您可以用变量保存它,然后用sca()替换它们,使其成为当前的Axes对象,并调用plot()在其中绘制。如果需要同时绘制多个图表,可以向Figure()传递一个整数参数,以指定Figure对象的序列号。如果序列号指定的图形对象已经存在,则不会创建新对象,而只会创建当前图形对象。以下过程演示了如何依次在不同图形的不同子图形中绘制曲线。(matplotlibmultifigurepy)快速绘图首先,通过图(),创建了两个分别具有和序列号的图表。然后,在图中并排创建两个子图,并用变量ax和ax保存。ImportNumPyasnImportMatchPlatLibPyPlotaspltPlotFigure()#创建图表图形()#创建图表AX二绘图子图形()#创建子图形AX二绘图子图形()#创建子图形X=图形空间(,),在图表中快速绘制调用循环中的图形()以使图表成为当前图表并在其中绘制。然后调用sca(ax)和sca(ax)分别将子图ax和ax作为当前子图并绘制在其中。当它们成为当前子图时,包含它们的图将自动成为当前图,因此不需要调用figure()来依次在图和图的两个子图之间切换,并逐渐为iinxrange()添力口新曲线:pltfigure()#选择图pltplot(x,npexp(I*x))pltsca(ax)#选择图的子图pltplot(x)。Nspin(i*x))pltsca(ax)#选择图表的子图pltlot(x,npcos(i*x))pltltshow()快速绘图轴设置轴容器包括轴刻度线、刻度线标签、坐标网格和轴标题等。该标度包括分别由getmajorticks()和getminorticks()方法获得的主标度和子标度。每个刻度线都是包含实际刻度线和刻度标签的 XTick或YTick对象。为了便于访问刻度线和文本轴对象,提供了getticklabels()和getticklines()方法来直接获取刻度线和刻度线。下面的示例绘制并获取当前子图的X轴对象轴:PLTPLOT(,一)PLTSHOW()AXIS=PLTGCA()*八*£快速绘制以获取轴对象的刻度位置列表:下面是axis对象的刻度标签和标签中的文本:axisgetticklocs()数组(,,,,)axisgetticklabels()#获取刻度标签列表alistoftextmajorticklabelobjectsxgettext()forxinasgetticklabels()#获取文本字符串u##,u##。可以看出,在X轴上总共有个刻度线。由于没有次要刻度线,次要刻度线列表的长度为:X轴上刻度线的配置可以通过使用pyplot模块中的xticks()来完成:axisgetticklines()Alistalflinedditrinesobjectsaxisetcklines(minor=true)#获取次要刻度线列表alistafflinedditrinesobjectspltxticks(fontsize=,color=red,rotations)在上面的示例中,次要刻度线列表为空,因为用于计算次要刻度线位置的对象默认为定位器计算主标尺位置的对象是自动定位仪,它根据当前配置(如缩放)自动计算标尺的位置。matplotlib提供了各种定位器类来配置刻度线的位置,还提供了格式化程序类来控制刻度标签的显示。以下程序将X轴的主刻度设置为圆周率,副刻度设置为圆周率,主刻度上的标签用数学符号显示圆周率。(matplotlibaxistextpy自定义坐标轴的比例和文本)与快速绘图和比例定位以及文本格式相关的类在matplotlibticker模块中定义,程序从该模块中加载两个类:MultipleLocationon。在快速绘图程序中,与比例值相对应的比例文本是通过piformatter()(复杂)defpiformatter(x,pos)计算出来的二andm==:m,n=m,nifm==:returnIFF==andn==:return$pi$IFN==:returnNR$dpi$mifm==:returnNR$frac{pi}{d}$nreturnr$frac{dpi}{d}$(m,n)快速绘图X=NPL空间 ( , *nppi , ,endpoint=True)Xarray(,,,,,,,,,,,,,,,)pltxticks(,,,,,,,,,,r#$$,r#$pir#$pi$#,r#$pi$#)#r#$frac{pi}{}$#,快速绘制将主亥U度线、次刻度线放在指定值的整数倍刻度上。使用指定的函数计算缩放文本。它将刻度值和刻度的序列号作为参数传递给函数axxaxissetmajorlocator(nppi))axxaxissetminollocator(nppi),该函数计算刻度文本axxaxissetmajorrformatter(funcformatter)(piformatter))#设置范围plylim(,)plklim,Npmax(x))快速绘制plsubflotsadjust(bottom=)#将绘图的下边缘设置为plgrid()#开放网格#主刻度是piaxxaxissetmajorritor(NPPI))#主刻度文本使用piformatter函数计算axxaxissetmajorritorformatter(funcformatter)(piformatter))#次亥^度是piaxxaxissetminorlocator(多定位器(NPPI))#设置刻度文本的大小fortickinaxxaxisgetmajorritockets():tickelableftfontsize()plshow()快速绘制让我们看看如何在对数坐标系中绘图。绘制对数坐标有三个函数:半对数()、半对数()和对数(),当x轴是对数、Y轴是对数且两个轴都是对数时,它们绘制图形。绘图功能简介以下程序使用不同的坐标系绘制低通滤波器的频率响应曲线。左上图是由图()绘制的算术坐标系,右上图是由半对数()绘制的X轴对数坐标系,左下图是由半对数()绘制的Y轴对数坐标系,右下图是由对数()绘制的双对数坐标系。由双对数坐标系表示的频率响应曲线通常称为波特图。(matplotliblogpy)importnumpyasymportantmatplotlibplotaspltw=nplinspace(,)p=npabs((j*w))#低通滤波器频率响应曲线功能介绍。linewidth=)pltylim( , )pltsubplot()pltsemilogx(w , p ,linewidth=)pltylim( , )pltsubplot()pltsemilogy(w , p ,linewidth=)pltylim(,)pltsubplot()PLTglog(w,p,Linewidth=)pltylim(,)pltshow()绘图函数简介绘图函数简介极坐标系统极坐标系统与笛卡尔(XY)坐标系完全不同。极坐标系统中的点由夹角和距中心点的距离表示。以下程序绘制极坐标图(matplotlibpolarpy)。ImportNumPyanImportMatplotlibplotasplttheta=nParange(,*NPPI),在绘图函数介绍程序中调用子图()创建子图时,通过将极坐标参数设置为“真”来创建极坐标子图。然后调用plot()在极坐标子图中绘图。您也可以使用极坐标()直接创建极坐标子图,并在其中绘制曲线。PLT子图(,POLAR=TRUE)PLT图(THETA,*NPONESLIKE(THETA),LINEWIDTH=)PLT图(*THETA,THETA,LINEWIDTH=)绘图功能简介rgrids()设置同心圆网格的半径大小和文本注释的角度。因此,右边的虚线圆具有三个半径、并且这些字符分别沿着deg线排列。Thetagrids()设置辐射网格的角度,因此右图中只有两个辐射角度分别为deg和deg。pltsubplot(,polar=True)pltplot(theta,*npcos(*theta),linewidth=)pltplot(theta,*npcos(*theta),linewidth=)PLTgrids(nparange(,),angle=)pltthetagrids(,)pltshow()绘图函数简介绘图函数简介直方图使用每列的长度来指示值的大小。它们通常用于比较两组或多组值。以下程序从文件中读取中国人口的年龄分布数据,并使用直方图比较男性和女性的年龄分布。(matplotlibbarpy绘制年龄分布图,比较男性和女性人口)通过导入ImportNumPyasInpImportMatplotlibpyplotslt绘制函数读取的数据中的第一列是年龄,它将用作直方图的横坐标。首先,计算直方图中每一列的宽度。因为每个年龄组要画两列,所以列的宽度应该小于年龄组的一半。这里,柱子的宽度是这个年龄组的两倍。Data=nloadtxt(Chinapopulationtext)width=(data,data,*drawingfunctionintroduction调用bar()绘制男性人口分布直方图。它的第一个参数是每列左边缘的横坐标。为了将男性和女性列放在年龄刻度的中心,让每列左侧的横坐标为年龄减去列的宽度。Bar()的第二个参数为每列的高度指定所有列的宽度,第三个参数为。当第三个参数是序列时,可以为每列指定一个宽度。Pitfigure(figuresize=(,))pltfar(data:,width,data:,e,width,color=b,label=umen)绘图功能简介绘制女性人口分布直方图。这里,列的左边缘横坐标是基于年龄的,因此女性和男性的人口分布以年龄为中心。由于bar()不会自动修改颜色,因此两个直方图的颜色是通过程序中的颜色参数设置的。Pltlbar(数据:,,data:,e,width,color=r,label=ufemal)pltxlim(width),pltlxlabel(uage)pltlabel(upopulation(tenmillion))pltllegend()pltltshow()绘图函数简介绘图函数简介哈希映射使用plot()绘图时,如果指定的样式参数仅绘制数据点,则绘制哈希映射。例如:但是,用这种方法绘制的点不能单独指定颜色和大小。散布()绘制的散列图可以指定每个点的颜色和大小。下面的程序演示了散点图()的用法。散点图()的前两个参数是数组分别指定每个点的X轴和Y轴的坐标。由S参数指定的点的大小与点的面积成比例。它可以是一个数字importnumpyasynpmportantmatchplotlibplotaspltpltfigure(figuresize=(,))x=nprandomrandom()y=nprandomrandom()PLTstatter(xy,s=x*,c=y,marker=(,),alpha=,Lw=,facecolors=none)pltxlim(,)pltylim(,)pltshow()绘图函数简介指定所有点的大小,或者一个数组分别指定每个点的大小。C参数指定每个点的颜色可以是数字或数组。这里,一维数组用于为每个点指定一个值。颜色映射表中的每个值对应一种颜色。在默认的颜色映射表中,蓝色对应于最小值,红色对应于最大值。当C参数是一个形状为(n)、(n)或(口)的二维数组时,它直接表示每个点的RGB颜色。标记参数设置点的形状可以是表示形状的字符串或表示多边形的两个元素的元组。第一个元素表示多边形的边数。绘图功能简介。第二个元素表示多边形的样式。数值范围为、、、。无论边数多少,多边形表示星形,星形表示圆形。最后,通过alpha参数设置点的透明度设置线宽,lw参数设置线宽lw是线宽的缩写。Facecolors参数为none表示哈希点没有填充颜色。绘图功能简介绘图功能简介图像imread()和imshow()提供简单的图像加载和显示功能,imread()可以从图像文件中读取数据,以获得表示图像的NumPy数组。它的第一个参数是文件名或文件对象格式参数,它指定图像类型。如果省略,图像类型由文件扩展名决定。对于灰度图像,它返回带有形状的数组;对于彩色图像,它返回带有形状的数组。其中m是图像的高度,n是图像的宽度,c是或,表示图像的通道数。下面的程序从lenajpg中读取图像数据,得到一个数组Img,它是一个单字节无符号整数数组,形状为(一)。这是因为常用的图像使用单个字节来存储每个像素的分量,红色、绿色、蓝色三个通道:IMG=PLTIMRED(LENAJPG)IMGSHAPE(L,L,L)IMGDTypedType(#uint#)绘图函数Introductionimshow()可用于显示由IMREAD()返回的数组。如果阵列是表示多通道图像的三维阵列,每个像素的颜色由每个通道的值决定:请注意,从JPG图像读取的数据是颠倒的。为了正常显示图像,可以反转阵列的第一个轴,或者将imshow()的origin参数设置为更低。因此,显示的图表的原点在左下角:pltimshow(img)#注意,图像是倒置的pltimshow(img::)#反转图像数组的第一个轴#或ltimshow(img,origin=lower)#让图表的原点在左下角。绘图功能的简要说明如果三维数组的元素类型是浮点数,则元素的值域是to,对应于颜色值to。超出此范围的像素可能有颜色异常。下面的示例将数组img转换为浮点数组,并使用imshow()显示它:img=img::pltimshow(img*)#浮点数字组的值在到的范围内,无法正确显示颜色pltimshow(img)#浮点数字组的值在到的范围内,可以正确显示颜色pltimshow(img、、、)#使用clip()来限制值范围整个图像增亮绘图功能简介如果imshow()的参数是二维数组,请使用颜色映射表来下面显示了图像中的红色通道:显示效果很吓人,因为默认的图像映射将最小值映射为蓝色、而最大值映射为红色。您可以使用colorbar()在图表中显示颜色映射:pltimshow(img:,,)pltcolorbar()绘图函数简介imshow()的cmap参数可以修改显示图像时使用的颜色映射。颜色映射表是一个颜色映射对象。matplotlib中已经预定义了许多颜色映射表。这些颜色映射表的名称可以通过下面的语句找到:(matplotlibimshowpy)下面的颜色映射表名为copper,用于显示图像的红色通道,它具有旧照片的味道:IMPORTmatplotlibrascmapnameslsquotradarsquao、RSQUOPPERRSQUO、LSQUORDYLN#、LSQUOTERSQUAO、RSQUOSUMNERSQUAO。rsquospringrsquo,rsquogistnkarsquopltimshow(img:,,,Cmap=cmcopper)绘图功能简介importnumpyasnmpmportantmapplotlibplotaspltimporttportmapplotlibcmasmpltsupplotadjustment(,,,)PLTupplot()img=pltimread(lenajpg)PLTusow(img)PLTupplot()pltimshow(img::)PLTupplot()pltimshow(img,Origin=lower)img=img::PLTuppltPLTplotplotPLTPLT下面的程序使用图像直观地显示二进制函数(matplotlibdfuncpy使用imshow()来可视化二进制函数)importnumpyasynpmportantmatplotlibportmapportmatplotlibcmasmy,x=npgrid::j,:JZ=x*npexp(x**y**)extend=npmin(x),npmax(x),npmin(y),npmax(y)drawingfunction简介。首先,通过数组的广播函数计算表示函数值的二维数组z。请注意,它的第一个轴代表y轴、第一个轴代表x轴。然后将X、Y轴的值范围保存到范围列表中。pltfigure(figsize=(,))pltsubplot()pltimshow(z,extent=extent,Origin=lower)PLTcolorbar()PLTsubplot()PLTimshow(z,extent=extent,cmap=cmgray,Origin=lower)PLTcolorbar()PLTshow()绘图函数介绍将扩展列表传递给imshow()的扩展参数,以便图表的X、Y轴的比例标签将使用扩展列表绘图函数介绍中指定的范围等值线图也可以使用等值线图来表示二进制函数。等值线是指由函数值相等的点形成的平滑曲线。等值线可以直观地表示二元函数值的变化趋势。例如,在等值线密集的地方,函数值变化很大。等高线()和等高线()可用于在matplotlib中绘制等高线。它们之间的区别在于等高线()获得具有填充效果的等高线。(matplotlibcontourpy使用contourandcontourf绘制等高线图)绘图功能简介importnumpyasymportantmatplotlibpyplotaspity,x=npogrid::j,:JZ=x*npexp(x**y**)extend=npmin(x),npmax(x),npmin(y),npmax(y)pltfigure(figsize=(,))pltsupplot()cs=PLTcontour(z,,extent=extent)PLTlabel(cs)PLTuppltcontour()PLTcontour这样获得的阵列z的形状是(,),其第一轴对应于y轴、第三轴对应于x轴。调用contour()绘制数组z的等值线图,第二个参数为,表示整个函数的取值范围平均分为6个区间,即在显示的等值线图中有一条等值线。与imshow()一样,您可以使用范围参数来指定等高线图的x轴和y轴的数据范围。Contour()返回一个QuadContourSet对象,并将其传递给clabel(),标记其中等值线的相应值。引入绘制功能调用等高线(),绘制等值范围分为0+部分的等高线图,具有填充效果。这里有另一种方法来设置X、Y轴的取值范围。它的前两个参数是在计算数组Z时使用的X轴和Y轴上的采样点,并且这两个数组必须是一维的。绘图函数的引入也可用于通过等值线绘制隐式函数曲线。显然,不可能像绘制一般函数一样,创建一个等差数组来表示变量的值点,然后计算数组中每个X对应的Y值。等值线可以用来解决这个问题。显然,隐函数的曲线是等值的等值线。当f(x,丫)二和f(x,y)=x=NPOgrid::j.::JF=(x**y**)**(x**y**)**绘图功能简介pitfigure(figuresize=(,))PLTsubplot()extend=npmin(x),npmax(x),npmin(y),npmax(y)cs=pitcolour(f,extend=extend)时,以下程序绘制曲线(matplotlibimplicitfundcpy)将此处的标高参数设置为,这样最终将绘制两条等值线。看一下图,我们会发现代表隐函数f(x)=蓝色的实线并不是完全连续的,它是由图中间许多孤立的小段组成的。因为等值线无限接近原点,无论函数f的值空间如何细分,总会有无法分离的地方,导致图中孤立的小区域。代表隐函数f(x,y)二的红色虚线是闭合的和连续的。绘图功能简介等值线上各点的数据可以通过等高线()返回的对象获得。变量cs在下面的IPython中观察到。它是一个四边形控制资源对象:cs对象的集合属性是一个等值线列表。每条等值线都由一个线集合对象表示:CSCollectionsSalistofCollLinecCollection对象SRUnmatplotlibimplicitFuncycSmaTPLOTTLLBCONTOURQUODOCENTOURCETINSTAXE绘图函数简介每个线集合对象都有自己的颜色、线型、线宽和其他属性注意,在这些属性获得的结果之外还有一层封装。真正的配置是获取它的第一个元素:从类名中,可以知道LineCollection对象是一组曲线,因此它可以表示由多条线组成的等值线,如蓝色实线。它的getpaths()方法获取组成等值线的所有路径。在本例中,蓝色实线cgetc010r()数组(,,由cgetlinewidth()绘图函数的简介所表示的等高线由四条路径组成:路径是一个路径对象,通过其顶点属性,可以获得路径上所有点的坐标:LEN(CscCollectionGetPaths())path=CscCollectionGetPaths()类型(PATH)类#MatplotLibPathPathPathVerticeArray(,,,,,下面的程序从等值线集中找到一条表示等值线的路径,并使用plot()将其绘制出来。plot()forcedcollections:data=setpath()verticespot(data:,,data:,,color=cgetcolor(),LINEALINELINEWIDTH=cgetLINEWIDTH())绘图功能简介3D绘图mpltoolkitsmplotd模块提供基于matplotlib的3D绘图功能。由于使用data的2D绘图功能绘制三维图形,绘图速度有限,不适合大规模数据的三维绘制。如果需要更复杂的3d数据可视化功能,可以使用Mayavi。(matplotlibsurfacepy使用matplotlib绘制三维曲面)绘图功能简介演示matplotlib的三维绘图功能。importnumpyasnimportmpltoolkitsmpl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论