您好,欢迎来到上海分类信息网
免费发信息

(二十一)Python数据可视化Matplotlib之折线图

2024-5-24 10:59:19发布3次查看ip:发布人:
研究表明人类大脑处理图片的速度要比文字快6万倍,如何将海量的数据转换成可视化的图形是数据分析的必修课。matplotlib是python中最常用的可视化工具之一,功能非常强大,可以方便的绘制折线图、条形图、柱形图、散点图、盒图等2d图形,还可以绘制基本的3d图形。matplotlib是python数据可视化的基础库,在它的基础上又衍生出了多个数据可视化的工具集(如seaborn,将在后面的文章中讲到)。
折线图的绘制
折线图通常用来表示数据随时间或有序类别变化的趋势,本文使用的数据集“unrate.csv”记录了美国从1948年1月到2016年8月之间每月的失业率数据,通过绘制折线图可以很直观的了解失业率随时间的变化情况。首先使用pandas的read_csv函数读取数据文件,并生成一个dataframe对象unrate,csv文件的列名date和value自动转换成unrate的两个列;然后使用pandas的to_datetime函数将date列的日期格式(yyyy/mm/dd)转换成标准日期格式(yyyy-mm-dd),如下图所示。
接下来就可以使用matplotlib库对数据进行可视化操作了,按照惯例首先要引入pyplot包,通常将将plt作为它的别名。我们可以通过调用pyplot的不同函数实现图形的创建、自定义、显示等操作,其中plot函数用于创建图形,引入的两个参数分别为x轴与y轴的数据,如果不传入参数,将绘制空白图形;xticks函数用于定义x轴刻度的位置和刻度的标签,传入rotation=45将刻度标签旋转45度,当x轴数据刻度比较密集且刻度标签较长时,将刻度标签做适当旋转很有必要;xlabel和ylabel函数分别用于设置x轴和y轴的标签,title函数用于整个图形的标题;最后使用show函数将图形展示出来。
子图的绘制
除了绘制单幅图形之外,matplotlib还可以绘制子图实现多幅图的数据比对。首先要通过plt.figure创建一个新的figure对象fig,然后通过fig.add_subplot添加子图subplot,add_subplot函数包含三个参数,前两个参数表示子图的分布,第三个参数表示子图的位置,比如add_subplot(2, 2, 4)表示当前figure对象中共有4个子图(2行2列),当前子图是第4个。注意:子图是按照先从左至右,再从上至下的顺序进行排序的。
figure对象可以理解为一个大的画板,而子图就像是一个个独立的画布,先创建画板,接着画板指定位置张贴画布,然后在画布上作画,最后将整个画板展示出来。注意:如果只有一个子图,创建figure对象和子图的语句可以简写成“fig, ax = plt.subplots()”。
在单幅图中绘制多条折线
还可以使用matplotlib在单幅图中绘制多条折线,以实现数据的对比。方法很简单,就是多次调用plot方法,多条折线用不同的颜色加以区分。
上图虽然实现了多条折线的数据对比,但是缺少x,y轴标签、图例、标题等信息,别人看到这个图肯定是一头雾水,为了使绘制的图形更加清楚易懂,下面将上图的代码进行改进。
第4行提取unrate的date列中的月份,并新建了一个新的列month,在绘图时month列的数据可以直接作为x轴的刻度;第5行定义了一个颜色列表,对绘图使用颜色进行几种管理,方便以后的修改;第7行到第14行,使用for ... in循环来控制代码的长度,即使绘制100条折线也不会额外增加代码量;第16行至第19行分别对图形的图例、x轴y轴的标签和图形的标题进行定义。最终的绘制结果如下图所示,是不是一目了然了?
除了折线图以外,matplotlib还可以绘制条形图、散点图、柱形图、盒图,每种图形都有自己的应用场景,比如折线图通常用来表现数据的变化趋势,条形图通常用来对数据进行比较,散点图通常用来表现数据的分布等等。本文简单介绍了matplotlib中折线图的简单绘制,接下来将对其它几种图形进行介绍。本文使用的数据集和代码已上传到网盘,请移步网盘资源汇总(永久有效,定期更新)下载。
该用户其它信息

VIP推荐

上海分类信息网-上海免费发布信息-上海新闻网