一、Python数据可视化所需库
1. matplotlib:Python中最基本且实用的绘图库,适用于各种二维数据的可视化。
2. Seaborn:基于matplotlib的高级可视化效果库,专门针对数据挖掘和机器学习中的变量特征选取,用简洁的代码绘制多维度数据的可视化效果图。
3. Bokeh:一个用于在浏览器端进行交互式可视化的库,实现分析师与数据的实时交互。
4. Mapbox:一个处理地理数据的强大可视化工具库。
以matplotlib为例,我们可以总结为以下四种基本视觉元素来展现图形:
- 点(scatter plot):适用于二维数据,表示简单二维关系;
- 线(line plot):适用于时间序列数据;
- 柱状(bar plot):适用于类别统计数据;
- 颜色(heatmap):适用于展示第三维度数据。
根据数据之间的分布、构成、比较、联系以及变化趋势等关系,选择相应的图形进行展示。
二、第二步:转换数据,应用函数
数据分析和建模方面的大部分编程工作都是建立在数据准备的基础上的:加载、清理、转换以及重塑。同样地,我们的可视化步骤也需要对数据进行整理,转换成我们需要的格式再套用可视化方法完成作图。以下是一些常用的数据转换方法:
- 合并(merge,concat,combine_first):类似于数据库中的全外连接;
- 重塑(reshape);轴向旋转(pivot,类似Excel中的数据透视表);
- 去重(drop_duplicates);
- 映射(map);
- 填充替换(fillna,replace);
- 重命名轴索引(rename);
- 将分类变量转换为“哑变量矩阵”的get_dummies函数以及在DataFrame中对某列数据取限定值等。
根据第一步中选择好的图形,找到Python中对应的函数进行应用。
三、第三步:参数设置,一目了然
在原始图形绘制完毕后,我们可以根据需求修改颜色(color)、线型(linestyle)、标记(marker)或其他图表装饰项,如标题(Title)、轴标签(xlabel、ylabel)、轴刻度(set_xticks)以及图例(legend)等,使图形更加直观易懂。
第三步是在第二步的基础上,为了使图形更加清晰明了,做的修饰工作。具体参数都可以在制图函数中找到。
二、Matplotlib作图基础
Figure和Subplot
matplotlib的图形都位于Figure(画布)中,Subplot创建图像空间。不能通过figure绘图,必须用add_subplot创建一个或多个subplot。
figsize可以指定图像尺寸。
利用Figure的subplots_adjust方法可以调整间距。
颜色color,标记marker,和线型linestyle
matplotlib的plot函数接受一组X和Y坐标,还可以接受一个表示颜色和线型的字符串缩写:'g--',表示颜色是绿色green,线型是'--'虚线。也可以使用参数明确的指定。
线型图还可以加上一些标记(marker),来突出显示数据点的位置.标记也可以放在格式字符串中,但标记类型和线型必须放在颜色后面。
刻度,标签和图例
plt的xlim、xticks和xtickslabels方法分别控制图表的范围和刻度位置和刻度标签。
调用方法时不带参数,则返回当前的参数值;调用时带参数,则设置参数值。
设置标题,轴标签,刻度以及刻度标签
添加图例
图例legend是另一种用于标识图标元素的重要工具。可以在添加subplot的时候传入label参数。
注解
除标准的图表对象之外,我们还可以自定义添加一些文字注解或者箭头。
注解可以通过text,arrow和annotate等函数进行添加。text函数可以将文本绘制在指定的x,y坐标位置,还可以进行自定义格式
保存图表到文件
利用plt.savefig可以将当前图表保存到文件。例如,要将图表保存为png文件,可以执行以下代码:
```python
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('my_figure.png')
```
文件类型是根据拓展名而定的。其他参数还有:
- fname:含有文件路径的字符串,拓展名指定文件类型
- dpi:分辨率,默认100
- facecolor:图像的背景色,默认‘w’白色
- format:显示设置文件格式(‘png’,‘pdf’,‘svg’,‘ps’,‘jpg’等)
- bbox_inches:图表需要保留的部分。如果设置为“tight”,则将尝试剪除图像周围的空白部分
Matplotlib是Python中最基础的绘图函数之一,尽管相对低级,但组装一张图表仍然需要单独调用各个基础组件。然而,在Pandas库中,我们可以使用许多基于matplotlib的高级绘图方法,使得原本需要多行代码才能完成的图表绘制变得简单快捷,仅需几行代码即可实现。在本篇文章中,我们将重点介绍如何使用pandas中的绘图包进行Matplotlib作图。
首先,我们来看一下如何绘制线型图。对于Series和DataFrame对象,都可以通过调用plot方法来生成各类图表。默认情况下,它们会生成线型图。下面是Series.plot方法的参数说明:
- style:风格字符串,'g--'表示绿色虚线
- alpha:图像的填充不透明度(0-1)
- kind:图表类型(bar,line,hist,kde等)
- xticks:设定x轴刻度值
- yticks:设定y轴刻度值
- xlim,ylim:设定轴界限
- grid:显示轴网格线,默认关闭
- rot:旋转刻度标签
- use_index:将对象的索引用作刻度标签
- logy:在Y轴上使用对数标尺
DataFrame.plot方法除了Series中的参数外,还有一些独有的选项。例如:
- subplots:将各个DataFrame列绘制到单独的subplot中
- sharex,sharey:共享x,y轴
- figsize:控制图像大小
- title:图像标题
- legend:添加图例,默认显示
- sort_columns:以字母顺序绘制各列,默认使用当前顺序
要生成柱状图或水平柱状图,只需在生成线型图的代码中加上kind='bar'或者kind='barh'即可。