python数据分析工具之matplotlib详解python

不论是数据挖掘还是数学建模,都免不了数据可视化的问题。对于Python来说,matplotlib是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图。它不但提供了一整套和Matlab相似但更为丰富的命令,让我们可以非常快捷地用python可视化数据。

#安装pipinstallmatplotlib

两种绘图风格:

MATLAB风格:

基本函数是plot,分别取x,y的值,然后取到坐标(x,y)后,对不同的连续点进行连线。

面向对象:

创建一个图形fig和一个坐标ax。

示例:

importmatplotlib.pyplotaspltimportnumpyasnp#图形显示风格plt.style.use('seaborn-whitegrid')#创建fig和axfig=plt.figure()ax=plt.axes()x=np.linspace(0,10,100)#显示sin函数图形plt.plot(x,np.sin(x))#显示cos函数图形plt.plot(x,np.cos(x))plt.show()

这就是利用面向对象的方式绘图,在交互模式中可以看到,每画一个图就是产生一个对象,最后再显示出来。

绘图样式

#调整坐标轴上下限plt.xlim([xmin,xmax])plt.ylim([ymin,ymax])plt.axis([xmin,xmax,ymin,ymax])#参数:tight:把图形设置成紧凑模式,不留多余的部分#equal:图形显示分辨率为1:1

文字设置

图形标题:plt.title

坐标轴标题:plt.xlabel,plt.ylabel

基础图例:plt.legend

注意:对中文不友好,需要额外方法,尽量使用英文

#示例importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(1,10,100)plt.plot(x,np.sin(x))plt.title('sin-function')plt.xlabel('x-value')plt.ylabel('y-label')plt.show()

图例

通过legend可以设置图例,同时通过参数的调整可以细腻的设置图例的位置、形式等。参数主要包括:

#示例importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(1,10,100)fig,ax=plt.subplots()ax.plot(x,np.sin(x),color='red',label='sin-function')ax.plot(x,np.cos(x),color='blue',label='cos-function')ax.legend(loc='upperright',frameon=True,shadow=True,framealpha=0.2)#设置图例位置为右上,有边框,有阴影,且透明度为0.2plt.show()

颜色条

importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(1,10,100)I=np.sin(x)*np.cos(x[:,np.newaxis])plt.imshow(I)plt.colorbar()plt.show()

散点图基础

散点图主要以点为主,数据是不连续的数据,通过设置线的型号来完成。型号包括‘o'、‘+'、‘*'、‘1'、‘h'、‘D'等等,具体使用探索一下就好,用不到太多。

importmatplotlib.pyplotaspltimportnumpyasnp#图形显示风格plt.style.use('seaborn-whitegrid')x=np.linspace(0,10,30)y=np.sin(x)#通过设置线型为点来完成散点图的绘制plt.plot(x,y,'o',color='blue')plt.show()

如果设置线型为点线结合,那么将绘制出连续的线,对应点处为所设置的点型。

画散点图还可以使用scatter函数来画,他有很多更细节的描述,用法与plot类似,对于数据量较大的可视化时,plot的效率更高一些。

误差线

importmatplotlib.pyplotaspltimportnumpyasnp#图形显示风格plt.style.use('seaborn-whitegrid')x=np.linspace(0,10,30)dy=x*0.5y=np.sin(x)+dyplt.errorbar(x,y,yerr=dy,fmt='.k',ecolor='blue')plt.show()

连续误差线表示的是连续量,可以使用plt.plot和plt.fill_between来画出。

importmatplotlib.pyplotaspltimportnumpyasnp#图形显示风格plt.style.use('seaborn-whitegrid')x=np.linspace(0,10,30)ysin=np.sin(x)ycos=np.cos(x)plt.plot(x,ysin,color='red')plt.plot(x,ycos,color='blue')plt.fill_between(x,ysin,ycos,color='gray',alpha=0.2)plt.show()

等高线(密度)

等高线绘制方法:z=f(x,y),z表示高度。当只有一个颜色绘图时,虚线表示负值,实线表示正值。meshgrid可以将一维数据变成二维网格数据。

importmatplotlib.pyplotaspltimportnumpyasnpdeff(x,y):returnnp.sin(x)**10+np.cos(10+y*x)*np.cos(x)x=np.linspace(0,5,50)y=np.linspace(0,5,40)#得到网格点矩阵x,y=np.meshgrid(x,y)#计算z轴的值z=f(x,y)#绘制图形plt.contour(x,y,z,colors='green')#plt.contour(x,y,z,50,cmap='RdGy')#更改配色,值50等分,红灰配色plt.show()

plt.contourf(x,y,z,50,cmap='RdGy')#改为contourf,自动填充颜色,则变为连续的

基本画法:plt.hist可以直接画直方图,参数主要包括:

importmatplotlib.pyplotaspltimportnumpyasnpdata=np.random.randn(1000)plt.hist(data,bins=30,alpha=0.3,histtype='stepfilled',color='blue',edgecolor='none')plt.show()

程序中random.randn与random.rand相比,randn表示随机生成的数符合正态分布,因此画出图来是如上图所示。

plt.subplot(2,1,1)#子图,(2,1,1)代表,创建2*1的画布,并且定位于画布1;等效于plt.subplot(211),即去掉逗号#subplots可以同时创建多个子图figure,ax=plt.subplots(2,3)#这是一个灵活创建子图的方法,可以创建任意组合的图形,不必一一对齐,以下为示例:grid=plt.GridSpec(2,3,wspace=0.3,hspace=0.2)plt.subplot(grid[,:2])plt.subplot(grid[1,1:3])

文字注释

通过不同的坐标变换,可以把文字放在不同的位置:

importmatplotlib.pyplotaspltimportnumpyasnpfig,ax=plt.subplots()ax.axis=([0,1,0,1])ax.text(0.5,0.5,"Data:(0.5,0.5)",transform=ax.transData)ax.text(0.5,0.1,"Axes:(0.5,0.1)",transform=ax.transAxes)plt.show()

箭头注释

importmatplotlib.pyplotaspltimportnumpyasnpfig,ax=plt.subplots()x=np.linspace(0,20,1000)ax.plot(x,np.cos(x))ax.axis('equal')ax.annotate("max",xy=(6.28,1),xytext=(10,4),arrowprops=dict(facecolor='black',shrink=0.05))ax.annotate('min',xy=(5*np.pi,-1),xytext=(2,-6),arrowprops=dict(arrowstyle="->",connectionstyle='angle3,angleA=0,angleB=-90'))plt.show()

基础三维图

matplotlib中绘制三维图用到mplot3d包。导入mplot3d包后,可以利用projection参数,控制绘制三维图。

importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkitsimportmplot3dfig=plt.figure()ax=plt.axes(projection='3d')plt.show()

三维图中当然包含三个轴,x,y,z。画线ax.plot3D,画点ax.scatter3D。为了三维效果,它会自动将远处的点颜色变浅。

importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkitsimportmplot3dfig=plt.figure()ax=plt.axes(projection='3d')z=np.linspace(0,15,100)x=np.sin(z)y=np.cos(z)ax.plot3D(x,y,z,'red')ax.scatter3D(x,y,z,'blue')plt.show()三维等高线

importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkitsimportmplot3dfig=plt.figure()ax=plt.axes(projection='3d')deff(x,y):returnnp.sin(np.sqrt(x**2+y**2))x=np.linspace(-6,6,30)y=np.linspace(-6,6,30)X,Y=np.meshgrid(x,y)Z=f(X,Y)ax.contour3D(X,Y,Z,50)plt.show()

图形绘制出来后,可以通过ax.view_init来控制观察的角度,便于理解。

Series绘图

#这是一个小栗子s1=Series(np.random.randint(1000).cumsum())#创建series,cumsum()是指叠加求和,本位数是前几项之和s1.plot()#series有自己的plot函数,里面可以写入想要的参数DataFrame绘图

df=DataFrame(np.random.randint(1,10,40).reshape(10,4),columns=['A','B','C','D'])df.plot()#dataframe也有自己的plot,按列画出来,参数包含ax,选择输出的画布#参数:stacked=True,表示一个堆叠的情况,同一个index下,columns一不同颜色叠在一起

THE END
1.福彩3D走势图表首页开奖公告乐币点播专家排行彩票资讯福彩3D双色球快乐8七乐彩排列3大乐透排列57星彩学习彩票走势图工具访问本站表明您同意:本站提供的资料和数据仅供您参考,请您在使用前核实并慎重对待,因此受到的任何损失https://tools.17500.cn/tb/3d/
2.3D均值走势图3D走势图独胆(三期计划):22中21 东山飞雪福彩3D-(325期~327期) 上期中 独胆11中10,天意本如此 报喜看胆福彩3D-326期 上期中 独胆9连对 长虹饮涧福彩3D-上期中 独胆10中8,财富从胆来 墨色天香福彩3D-326期 上期中 独胆9中8,来了就进吧,不后悔 繁华叶茂福彩3D-326期 参数说明 福彩3D均值走势图主要https://wap.ssqzj.com/zst/cjw3d/3d_weishu-jz.html
3.数据分析图图片免费下载数据分析图素材数据分析图模板千图网为您找到2962张数据分析图相关素材,千图网还提供数据分析图图片,数据分析图素材, 数据分析图模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/shujufenxitu.html
4.3d数据分析图表图片3d数据分析图表图片素材免费下载千库网为设计者提供3d数据分析图表素材大全,为您省却3d数据分析图表图片素材搜索时间,这里有海量3d数据分析图表素材图片供您下载使用,本次搜索千库网为您找到10000张素材https://588ku.com/image/3dshujufenxitubiao.html
5.3d怎么看走势图和分析数据帆软数字化转型知识库3D走势图和分析数据主要通过以下几种方式:观察历史数据、寻找数据规律、使用专业工具、结合经验判断。首先,通过观察历史数据,可以找到一些出现频率较高的号码和组合,这有助于提高预测的准确性。例如,如果某个号码在过去10期内出现了3次,那么它在接下来的几期内再次出现的可能性就会较高。通过这种方式,可以初步筛选出https://www.fanruan.com/blog/article/455650/
6.高德地图吊打百度个性地图更新版,成为最佳分析图利器本文介绍了高德地图开放平台和百度个性地图的最新功能,包括自定义地图样式、图层编辑、3D地图、数据分析和配色方案。高德地图支持在线3D地图编辑、纹理拼贴以及数据分析图的生成,而百度地图提供了多种地图样式模板和一键配色功能,便于用户快速制作区位分析图。此外,还分享了如何在两个平台上关闭文字标注和提取地图元素的方法https://blog.csdn.net/weixin_39694016/article/details/112719221
7.在WPSExcel如何制作数据分析图的?打开想要制作透的数据源,用数据透视表一般是数据量大并且数式规范,需要汇总,可能还要随时做出变更调整https://www.3d66.com/answers/question_1319776.html
8.数据可视化3D热力图热力图分析工具数据可视化 3D热力图 热力图分析工具,在做AGV路径规划或人员路径规划时,如果配套热力图,是可以非常方便的分析出相应位置的热点情况,决策人员可以更加方便的确定方案修改思路,比如下图可以非常清晰地看到AGV的停顿位置和路口的使用情况。较早之前,波哥开发了热力图工具https://blog.51cto.com/u_16213594/8469518
9.广东福彩网――数据分析――3D――大小走势图3D数据分析 查看 期数据表 号码表 百位数 十位数 个位数 组选大小 单选大小 期号 开奖号 和 跨 小 大 小 大 小 大 A B C D 0 1 2 3 4 5 6 7 2024310 6 0 3 9 6 1 D X 1 X 1 1 1 C 1 1 1 1 3 1 1 1 1 2024309 5 3 9 17 6 2 D X 2 1 D 2 B 1 2 2 2 2 1http://www.gdfc.org.cn/sjfx/dxzs100.html
10.上升曲线与数据分析概念3D渲染图片下载觅知网提供上升曲线与数据分析概念3D渲染原创图片下载,图片可用做设计、配图、壁纸等场景使用,作品编号:7814850,尺寸为8000*5000像素,格式为jpg。更多3D,,K线,,K线图,,上升,,上涨,,云技术,,云计算,,互联网,,价格,,信息,,信息技术,,分析,,办公,,升值,,增值,,增长,,投资,,插画,,收入,,收益,等图片,尽在觅https://www.51miz.com/tupian/7814850.html
11.C4D立体3D手机金融ui数据分析动图gif图片潮国创意提供C4D立体3D手机金融ui数据分析动图gif图片下载,图片格式Array,图片尺寸2000*2000,C4D立体3D手机金融ui数据分析动图gif图片素材可以用于商业用途,下载潮流创意图片就到潮国创意。https://chaopx.com/detail/T24716610.html
12.用于大规模图像分析和机器视觉的GeoAI当研究人员的研究涉及数据挖掘、机器学习和深度学习(人工智能的最新进展)时,研究人员经常使用这个术语。在这里,我们将 GeoAI 定义为一个新的跨学科研究领域,该领域利用地理空间大数据利用和开发基于位置的分析人工智能。图1描绘了 GeoAI 的大图。它将人工智能研究与地理学相结合,地理学是地方和空间的科学。如果我们同意https://www.victorlamp.com/article/7387260962
13.金色3D饼状图背景的数据分析PPT模板这是一份炫目的数据分析数据统计类PPT模板,第一PPT模板网,提供幻灯片模板免费下载; 幻灯片模板橙色与黄色的渐变作为背景,一个金属质感的3D立体饼状图模型作为PPT背景图片。给人高端大气的感觉; 本PPT模板适合用于制作与金融、财务相关的幻灯片。以及数据分析、数据统计PPT; 关键词:黄色、金色PPT背景,3d立体幻灯片https://www.1ppt.com/article/16939.html
14.FC3D基本走势图彩浪数据免费为彩民提供FC3D-基本-最大可选最新[500期]走势图(横向为号码-纵向为期号-由FC3DKJ号码绘制而成)https://www.cl8c.com/chart/fc3d/11.html
15.绘图软件设计准则是什么绘图工具软件有哪些→MAIGOO知识流程/数据分析图绘图 1、VISIO Office Visio 是office软件系列中的负责绘制流程图和示意图的软件,是一款便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。使用具有专业外观的 Office Visio 图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。 https://www.maigoo.com/goomai/158397.html
16.想看福彩3D的和值图吗?这里有详细的走势图给你参考!福彩3d走势图福彩3d走势图完整版新浪 福彩3D走势图完整版新浪是一个专为福彩3D彩票迷设计的数据分析工具。该走势图提供了详细的历史开奖数据,直观展示了各个号码的出现频率、冷热趋势及遗漏情况,帮助彩民更好地把握选号策略。用户可以通过走势图直观地观察到近期热门号码和冷门号码,为下注提供参考依据。该平台还更新及时,确保用户获取http://www.hljmx.net/ceping/3803.shtml
17.人类肿瘤图谱网络:以单细胞分辨率描绘肿瘤的跨时空转变表1: 构建肿瘤3D图谱的工具箱 数据分析和图谱建立 计算分析是HTAN肿瘤图谱构建的基本组成部分,可反复指导研究和实验设计。HTAN的研究员将采用计算方法绘制细胞和空间剖面图,以及多尺度的组织学和解剖结构。他们进一步将这些数据与临床数据整合,以生成一个广泛可访问并可由科学界动态查询的连贯图谱。HTAN的研究员还将https://www.cn-healthcare.com/articlewm/20210122/content-1183234.html
18.福彩3D走势图带连线福彩3D基本走势带坐标500网 客服热线:4000-500-353 选择彩种 超级大乐透 福彩3D:基本走势最近30期最近50期最近100期期 至期 标注形式选择:不带遗漏数据带折线 日期期号开奖号码百位十位个位不分位 0123456789012345678901234567890123456789 2024-11-0620242973721810173521112171614913463781016221532512212816123321717 https://datachart.500.com/sd/
19.数据可视化几种工具分析4、 其他:支持飞线图/水位图/轮播表/ DataFocus DataFocus是一个不开源的数据可视化工具,DataFocus在数据分析上,是首个采用自然语言进行数据分析的工具,能够系统智能适配图表,DataFocus拥有20多种图表,数据可视化大屏支持自定义配置。 DataFocus大屏示例 https://www.jianshu.com/p/c8db75414ef5