数据分析与可视化 课件Chapter3 常见Python IDE_第1页
数据分析与可视化 课件Chapter3 常见Python IDE_第2页
数据分析与可视化 课件Chapter3 常见Python IDE_第3页
数据分析与可视化 课件Chapter3 常见Python IDE_第4页
数据分析与可视化 课件Chapter3 常见Python IDE_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

数据分析与可视化第三章常见PythonIDE3.1PythonIDE3.2利用Anaconda进行可视化3.3交互式可视化的库第三章常见PythonIDE2《数据分析与可视化》第三章常见PythonIDE3.1.1Python3.x与Python2.73.1.2不同类型的交互式工具3.1.3不同类型的PythonIDE3.1PythonIDE3《数据分析与可视化》第三章常见PythonIDE3.1.1Python3.x与Python2.7Python3.x不向后兼容2.x版本主要关注Python3.x3.1PythonIDE4《数据分析与可视化》第三章常见PythonIDE3.1.2不同类型的交互式工具Ipython:增强的交互式Pythonshell,一并包括Julia、R、Ruby等其他语言,默认提供制表符补全3.1PythonIDE5《数据分析与可视化》第三章常见PythonIDE命令描述?对IPython的特性的介绍和概述等%quickref提供快速参考--help-all提供关于Python的帮助%who/%whos提供有关标识符的信息IPython基本命令Ipythonnotebook:基于Web的交互式计算环境3.1PythonIDE6《数据分析与可视化》第三章常见PythonIDEIPython运行示例Plotly:在线分析和数据可视化工具,包含多种语言(例如Arduino、Julia、MATLAB、Perl、Python和R)的科学图形库3.1PythonIDE7《数据分析与可视化》第三章常见PythonIDE五大洲人均GDP和人均寿命情况importplotly.plotlyaspyimportmatplotlib.pyplotasplt#创建画布mpl_fig_obj=plt.figure()#创建matplotlib图形py.plot_mpl(mpl_fig_obj)3.1PythonIDE8《数据分析与可视化》第三章常见PythonIDE将绘图从matplotlib转换为Plotly3.1.3不同类型的PythonIDE(1)PyCharm:提供基于JavaSwing的用户界面。(2)PyDev:提供基于SWT的用户界面(适用于Eclipse)。(3)InteractiveEditorforPython(IEP):提供简单高效的Python开发环境。(4)Enthought开发的Canopy:基于PyQt。(5)ContinuumAnalytics开发的Spyder(AnacondaDistribution):基于PyQt。3.1PythonIDE9《数据分析与可视化》第三章常见PythonIDEPyCharm:少数几个具有强大功能的流行IDE之一,其社区版本是免费的提供了适用于macOS、Linux和Windows的版本3.1PythonIDE10《数据分析与可视化》第三章常见PythonIDENumPy极坐标投影示例rand_4=np.random.random_sample((2,2,2,2))-1array([[[[-0.6565232,-0.2920045],[-0.45976502,-0.70469325]],[[-0.80218558,-0.77538009],[-0.34687551,-0.42498698]]],[[[-0.60869175,-0.9553122],[-0.05888953,-0.70585856]],[[-0.69856656,-0.21664848],[-0.29017137,-0.61972867]]]])3.1PythonIDE11《数据分析与可视化》第三章常见PythonIDE创建随机样本随机数组创建过程PyDev:Eclipse的插件,支持代码重构、图形式代码调试、交互式控制台、代码分析和代码折叠可作为Eclipse插件安装或直接安装LiClipse,但需要先安装Java183.1PythonIDE12《数据分析与可视化》第三章常见PythonIDE3.1PythonIDE13《数据分析与可视化》第三章常见PythonIDEPyDev使用示例IEP:形式上与MicrosoftWindows上使用的工具相似,主要关注交互性和代码内省由编辑器和shell两个主要组件组成,并使用一组可插拔工具来帮助编程关键特性:(1)与各种现代IDE一样的代码内省(CodeIntrospection)。(2)通过CLI或通过IPython界面以交互方式运行Python脚本。(3)将shell作为后台进程运行。(4)多个shell使用不同的Python版本。3.1PythonIDE14《数据分析与可视化》第三章常见PythonIDE3.1PythonIDE15《数据分析与可视化》第三章常见PythonIDE不同Python版本的同时展现EnthoughtCanopy:有在BSD开源许可协议下发布的免费版本组件介绍:(1)文档浏览器:使用它,您可以从硬盘读取或写入Python程序。(2)Python代码编辑器:它指定了一个语法高亮的代码编辑器,包括专用于Python代码的附加功能。(3)Python窗格:这是一个集成的IPython提示,可用于交互式运行Python程序,而不是从文件中直接运行。(4)编辑器状态栏:可用于显示行号、列号、文件类型和文件路径。3.1PythonIDE16《数据分析与可视化》第三章常见PythonIDE3.1PythonIDE17《数据分析与可视化》第三章常见PythonIDECanopyIDE组件Canopy文档浏览器3.1PythonIDE18《数据分析与可视化》第三章常见PythonIDECanopy包管理器Anaconda-Spyder:Anaconda是社区使用的最流行的IDE之一。它带有大量已集成的软件包,此IDE基于名为conda的核心组件使用conda或pip安装或更新Python包多种选择:IPython控制台(ipythonqtconsole)、IPython笔记本(ipython-notebook)、spyder-app和glueviz3.1PythonIDE19《数据分析与可视化》第三章常见PythonIDE3.1PythonIDE20《数据分析与可视化》第三章常见PythonIDE

Spyder代码编辑器和IPython控制台Conda:命令行工具,用于管理Python的环境和包查看Conda运行的是哪个版本:Conda环境本身是一个文件系统目录,其中包含特定的Conda包集合3.1PythonIDE21《数据分析与可视化》第三章常见PythonIDEconda–v3.1PythonIDE22《数据分析与可视化》第三章常见PythonIDE已正确安装Anaconda下安装SciPy:$condainstallSciPy用Conda安装SciPy包3.1PythonIDE23《数据分析与可视化》第三章常见PythonIDE安装或更新Python包:condainstall<packagename>orcondaupdate<packagename>用Conda更新matplotlib包3.1PythonIDE24《数据分析与可视化》第三章常见PythonIDE快速显示默认环境中安装的所有软件包的列表:$condalist可以使用平常的方式安装软件包,例如运行pipinstall或使用setup.py文件从源代码安装3.2.1绘制3D曲面图3.2.2绘制方形树状图3.2利用Anaconda进行可视化25《数据分析与可视化》第三章常见PythonIDE3.2利用Anaconda进行可视化26《数据分析与可视化》第三章常见PythonIDE常用绘图库:(1)Matplotlib:加上NumPy和SciPy,是与科学计算相关的Python社区的主要驱动力。IPython有一个pylab模式,专门用于支持matplotlib实现交互式绘图。(2)Plotly:在浏览器上运行的协作绘图和分析平台。它支持基于IPythonnotebook的交互式图表。使用matplotlib编写的绘图代码都可以轻松导出为Plotly版本。(3)Veusz:用Python和PyQt编写的GPL(GeneralPublicLicense,通用公共许可协议)绘图包。Veusz也可以嵌入其他Python程序(4)Mayavi:3D绘图包,支持基于Python编写脚本(5)NetworkX:Python语言软件包,用于创建、操作和研究复杂网络的结构和功能(6)pygooglechart:可用于创建可视化方法并支持与GoogleChartAPI进行交互

3.2利用Anaconda进行可视化27《数据分析与可视化》第三章常见PythonIDE(1)首先生成“X”和“Y”网格(Grid)importnumpyasnpX=np.arange(-4,4,0.25)Y=np.arange(-4,4,0.25)X,Y=np.meshgrid(X,Y)3.2利用Anaconda进行可视化28《数据分析与可视化》第三章常见PythonIDE(2)绘制曲面frommpl_toolkits.mplot3dimportAxes3dfrommatplotlibimportcmfrommatplotlib.tickerimportLinearLocator,FormatStrFormatterimportmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure(figsize=(12,9))ax=fig.gca(projection='3d')#生成ZR=np.sqrt(X**2+Y**2)Z=np.sin(R)3.2利用Anaconda进行可视化29《数据分析与可视化》第三章常见PythonIDEsurf=ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=cm.coolwarm,linewidth=0,antialiased=False)ax.set_zlim(-1.01,1.01)ax.zaxis.set_major_locator(LinearLocator(10))ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))fig.colorbar(surf,shrink=0.6,aspect=6)plt.show()用mpl_toolkits绘制3D曲面3.2.1绘制方形树状图例:使用squarify算法(基于matplotlib)按GDP显示非洲排名前12的国家3.2利用Anaconda进行可视化30《数据分析与可视化》第三章常见PythonIDE3.2利用Anaconda进行可视化31《数据分析与可视化》第三章常见PythonIDE#方形树状图:源代码文件(squarify.py)#运行代码的算法来自Bruls,Huizing,vanWijk,"SquarifiedTreemaps"#squarify是由UriLaserson创建的defnormalize_sizes(sizes,dx,dy): total_size=sum(sizes) total_area=dx*dy sizes=map(float,sizes) sizes=map(lambdasize:size*total_area/total_size,sizes) returnsizes3.2利用Anaconda进行可视化32《数据分析与可视化》第三章常见PythonIDEdefpad_rectangle(rect): ifrect['dx']>2: rect['x']+=1rect['dx']-=2ifrect['dy']>2:rect['y']+=1 rect['dy']-=2deflayoutrow(sizes,x,y,dx,dy): covered_area=sum(sizes)width=covered_area/dy rects=[] forsizeinsizes: rects.append({'x':x,'y':y,'dx':width,'dy':size/width}) y+=size/width returnrects3.2利用Anaconda进行可视化33《数据分析与可视化》第三章常见PythonIDEdeflayoutcol(sizes,x,y,dx,dy):covered_area=sum(sizes) height=covered_area/dx rects=[] forsizeinsizes: rects.append({'x':x,'y':y,'dx':size/height,'dy':height}) x+=size/height returnrectsdeflayout(sizes,x,y,dx,dy): returnlayoutrow(sizes,x,y,dx,dy)ifdx>=dyelselayoutcol(sizes,x,y,dx,dy)3.2利用Anaconda进行可视化34《数据分析与可视化》第三章常见PythonIDEdefleftoverrow(sizes,x,y,dx,dy): covered_area=sum(sizes) width=covered_area/dy leftover_x=x+width leftover_y=y leftover_dx=dx-width leftover_dy=dy return(leftover_x,leftover_y,leftover_dx,leftover_dy)defleftovercol(sizes,x,y,dx,dy): covered_area=sum(sizes) height=covered_area/dx leftover_x=x leftover_y=y+height leftover_dx=dx leftover_dy=dy-height return(leftover_x,leftover_y,leftover_dx,leftover_dy)3.2利用Anaconda进行可视化35《数据分析与可视化》第三章常见PythonIDEdefleftover(sizes,x,y,dx,dy): returnleftoverrow(sizes,x,y,dx,dy)ifdx>=dyelseleftovercol(sizes,x,y,dx,dy)defworst_ratio(sizes,x,y,dx,dy): returnmax([max(rect['dx']/rect['dy'],rect['dy']/rect['dx'])forrectinlayout(sizes,x,y,dx,dy)])defsquarify(sizes,x,y,dx,dy): sizes=map(float,sizes) iflen(sizes)==0: return[] iflen(sizes)==1: returnlayout(sizes,x,y,dx,dy) i=13.2利用Anaconda进行可视化36《数据分析与可视化》第三章常见PythonIDE whilei<len(sizes)andworst_ratio(sizes[:i],x,y,dx,dy)>=worst_ratio(sizes[:(i+1)],x,y,dx,dy): i+=1 current=sizes[:i] remaining=sizes[i:] (leftover_x,leftover_y,leftover_dx,leftover_dy)=leftover(current,x,y,dx,dy) returnlayout(current,x,y,dx,dy)+\squarify(remaining,leftover_x,leftover_y,leftover_dx,leftover_dy)defpadded_squarify(sizes,x,y,dx,dy): rects=squarify(sizes,x,y,dx,dy) forrectinrects: pad_rectangle(rect) returnrects3.2利用Anaconda进行可视化37《数据分析与可视化》第三章常见PythonIDEimportmatplotlib.pyplotaspltimportmatplotlib.cmimportrandomimportsquarifyx=0y=0width=950height=733norm_x=1000norm_y=1000fig=plt.figure(figsize=(15,13)) ax=fig.add_subplot(111,axisbg='white')上述代码squarify函数可用于展示非洲GDP排名前12的国家,其实现如以下代码所示:3.2利用Anaconda进行可视化38《数据分析与可视化》第三章常见PythonIDEinitvalues=[285.4,188.4,173,140.6,91.4,75.5,62.3,39.6,29.4,28.5,26.2,22.2]values=initvalueslabels=["SouthAfrica","Egypt","Nigeria","Algeria","Morocco","Angola","Libya","Tunisia","Kenya","Ethiopia","Ghana","Cameron"]colors=[(214,27,31),(229,109,0),(109,178,2),(50,155,18),(41,127,214),(27,70,163),(72,17,121),(209,0,89),(148,0,26),(223,44,13),(195,215,0)]#将RGB数值(r,g,b)标准化到[0,1]使其满足matplotlib作图需求foriinrange(len(colors)): r,g,b=colors[i] colors[i]=(r/255.,g/255.,b/255.)#值必须降序排列values.sort(reverse=True)#这些值的总和必须等于要铺设的总面积values=squarify.normalize_sizes(values,width,height)3.2利用Anaconda进行可视化39《数据分析与可视化》第三章常见PythonIDE#在某些情况下,加上边缘的矩形可能会有更好的视觉效果rects=squarify.padded_squarify(values,x,y,width,height)cmap=matplotlib.cm.get_cmap()color=[cmap(random.random())foriinrange(len(values))]x=[rect['x']forrectinrects]y=[rect['y']forrectinrects]dx=[rect['dx']forrectinrects]dy=

温馨提示

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

最新文档

评论

0/150

提交评论