用数据表达信息是非常准确的,但用图形去表达信息更一目了然。Python有许多用于数据图形化的工具,可以帮助我们快速的将数据用图形表达出来。 25。1数据图形化工具JupyterNotebook JupyterNotebook是一种Web应用,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。它生成的。jpynb文件可以发布到网上供所有人查阅。 如果安装了Anaconda,就不需要额外安装JupyterNotebook。前面在第十八章中已经介绍过Anaconda的安装方法,这里假设你已经在计算机上安装了Anaconda。 可以在Anaconda的目录下找到JupyterNotebook或者在搜索框中搜索JupyterNotebook(不限字母大小写),然后运行即可出现如下界面: 接下来,单击右上角的New按钮,在下拉列表中选择Python3,此时会出现如下界面: 可以在In〔〕:后面的代码框输入代码,点击运行按钮运行,其他操作都非常容易掌握。 25。2图表的基本组成元素 一个标准的可视化图表如下图所示,该表包含了一个图表中的基本组成元素。 25。3创建画布 在In〔〕:后面的代码框输入如下代码(代码243): importmatplotlib。pyplotasplt 导入matplotlib库中的pyplot并命名别名为plt matplotlibinline 为了使图表在JupyterNotebook中输出 plt。rcParams〔font。sansserif〕SimHei 指定标签的字体,但要保证Anaconda安装了该字体 plt。rcParams〔axes。unicodeminus〕False 解决负号显示出错的问题 configInlineBackend。figuresvg 设置显示格式为矢量图,可以提高清晰度 figplt。figure() 创建画布 plt。figure(figsize(8,6)) 设置画布的宽和高 plt。show() 显示图片 点击运行按钮,即可创建一个宽为8,高为6(单位为英寸)的画布,但此时的画布并看不到,因为它是空白的。 如果在plt。show()前面再添加如下几行代码: plt。xlim(0,20) plt。ylim(0,10) plt。xlim()和plt。ylim()函数可以设置坐标轴的最大刻度值。若不设置,坐标轴默认最大刻度值为1。 运行后得到如下图表: 25。4建立坐标系 1、单坐标系,可运行如下代码: importmatplotlib。pyplotasplt matplotlibinline plt。rcParams〔font。sansserif〕SimHei plt。rcParams〔axes。unicodeminus〕False configInlineBackend。figuresvg figplt。figure() ax1fig。addsubplot(1,1,1) 可以得到如下坐标系: 2、也可以在一张画布上绘制多个坐标系,输入如下代码,可以绘制出4个坐标系: importmatplotlib。pyplotasplt matplotlibinline plt。rcParams〔font。sansserif〕SimHei plt。rcParams〔axes。unicodeminus〕False configInlineBackend。figuresvg figplt。figure() ax1fig。addsubplot(2,2,1) ax2fig。addsubplot(2,2,2) ax3fig。addsubplot(2,2,3) ax4fig。addsubplot(2,2,4) 运行后得到如下坐标系: 25。5设置其他图表格式 现采用如下数据(d:sell。txt): month,amount 1,68980 2,78875 3,81400 4,70624 6,65562 6,94603 7,49705 8,76060 9,83485 10,96033 11,85446 12,84685 用如下实例进行详解,代码如下(不能用注释解释的部分,请按照编号参考后面的详解): importpandasaspd importnumpyasnp importmatplotlib。pyplotasplt matplotlibinline plt。rcParams〔font。sansserif〕SimHei plt。rcParams〔axes。unicodeminus〕False configInlineBackend。figuresvg figplt。figure() datapd。readcsv(d:sell。txt)〔1〕 xdata〔month〕〔2〕 ydata〔amount〕 plt。xlabel(月份)设置横轴标题 plt。ylabel(销售量,labelpad10)设置纵轴标题,labelpad为ylabel到y轴的距离 plt。grid(bTrue,linestyledashed,linewidth1)〔3〕 plt。xticks(np。arange(13),〔,1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月〕)〔4〕 plt。plot(x,y,label折线图)画出折线图,并标出图例 plt。bar(x,y,label柱状图)画出柱状图,并标出图例 plt。legend(ncol2)2个图例都显示 plt。title(label大漠公司112月销售量统计)设置图表标题 运行后得到的图表如下: 关于上面程序的详解: 【1】pd。readcsv()方法可以读取文本文件,既可以读取。txt文件,也可以读取。csv文件。 。txt文件大家都非常熟悉,一般用记事本程序编辑。。csv文件是一种特殊的纯文本文件,可以用Excel程序编辑,文件保存时选择。csv格式即可。。csv文件在Excel中编辑时和普通的。xlsx文件区别,都是按照单元格编辑的,保存为。csv文件后,在记事本中打开,会发现行用换行符区分,列用逗号隔开。 从上例我们已经知道,普通的。txt文件也能被pd。readcsv()方法读取,所以,直接使用用行和逗号分隔的数据更为方便。 【2】d:sell。txt被pd。readcsv()方法读取后,是一个DataFrame类型的数据集,共有两个列,即〔month〕和〔amount〕。 【3】plt。grid()用于设置图表的网格线。 bTrue用来启用网格线。 如果仅开启x轴的网格线,可用参数如果仅开启y轴的网格线,可用参数若不设置axis,则同时开启x和y轴的网格线。 linestyle用于设置线型,如linestyledashed,表示设置为虚线。 linewidth1表示线宽的值。 【4】plt。xticks用于设置横坐标轴的刻度,格式如plt。xticks(ticks,labels),其中ticks表示刻度值,labels表示该刻度处对应的标签,都为列表类型。 因为在前面的语句plt。xlabel(月份)中没有设置labelpad参数,所以显示的月份是从0刻度开始的,所以ticks的值设为np。arange(13),即刻度为012,相应的标签为空字符、1月12月。 关注大漠孤驼的编程苦旅,告诉你不一样的Python