随着数据量的不断增长,快速理解数据并从中提取洞察变得至关重要。数据可视化正是这一需求下的产物。例如,当需要从海量的销售数据中展示关键的销售指标(如销售业绩、目标、收入、获客成本等)时,会选择哪种方式?是通过Excel(或电子表格)手动探索数据并跟踪每个销售指标,还是通过不同类型的销售图表和图形来探索数据?显然,后者是更佳的选择。因此,数据可视化在数据探索和数据分析中扮演着关键角色。
数据可视化是一种将数据或信息以图形或图表形式呈现的技术。它使利益相关者和决策者能够直观地分析和探索数据,从而发现深刻的洞察。正如Ben Schneiderman所说:“可视化能给提供不知道自己有的问题的答案。”
数据可视化的好处包括:帮助数据分析和探索,使数据更易于理解;将复杂的定量信息总结在一个小空间内;帮助发现数据中的最新趋势和隐藏模式;识别变量之间的关系或相关性;帮助检查需要关注或改进的领域。
为什么选择Plotly?在Python中,有许多库如Matplotlib、Seaborn等可用于数据可视化,但它们只渲染图表/图形的静态图像,因此许多关键信息在可视化中丢失了。如果能够通过悬停或放大来更好地与图表互动,那岂不是很棒?Plotly允许这样做。Plotly是一个开源的数据可视化库,用于创建交互式和出版质量的图表/图形。Plotly提供了许多不同类型的图表/对象的实现,如折线图、散点图、面积图、直方图、箱线图、条形图等。Plotly支持在常用的编程语言中进行交互式绘图,如Python、R、MATLAB、Javascript等。
本文将介绍使用Plotly的最常见的图表类型。让从Kaggle上可用的Cars93数据集开始。该数据集包含了93种不同汽车的27个汽车参数(如制造商、型号、价格、马力、发动机尺寸、重量、气缸数、气囊、乘客数等)。数据集如下所示:
为了访问完整的Python代码,请访问Kaggle内核链接()。
安装Plotly:要在终端安装Plotly,请使用以下命令:pip install plotly
。Plotly附带了一些模块来创建可视化,即给提供了如何使用它的选择。
- express:用于快速创建可视化的高级接口。它是Plotly graph_objects模块的包装器。
- graph_objects:用于图形、迹线和布局的低级接口。它通常对不同的图表/图形高度可定制。
- figure_factory:图表工厂是用于创建非常特定类型的图表的专用函数。它在Plotly express存在之前就已存在,因此被标记为“遗留”。
了解了Plotly并安装了它之后,现在让使用它来绘制不同的图表/图形。
箱线图(或箱须图)是一种标准化的方式来显示基于五点摘要(最小值、第一四分位数(Q1)、中位数(Q2)、第三四分位数(Q3)和最大值)的定量数据的分布。箱子从Q1延伸到Q3的四分位数值,而须从箱子的边缘延伸到1.5*IQR。IQR = (Q3 – Q1)。
让为汽车的“价格”特征制作一个箱线图。这种可视化的最大好处是可以通过悬停来与之互动,查看分位数值。同样,可以根据需要进行自定义。例如,绘制每种“气囊”类型的“价格”的箱线图。
直方图是数值数据分布的准确表示。构建直方图的步骤如下:
- 将值的范围分箱(或桶):将整个值的范围划分为一系列区间。
- 计算每个区间中落入的值的数量。
让为汽车的“马力”特征绘制一个直方图。在这里,X轴是“马力”的箱范围,而Y轴则讨论每个箱中的频率/计数。
密度图是直方图的一种变体,它不是在Y轴上表示频率,而是表示PDF(概率密度函数)值。它有助于直观地确定变量的偏斜度。此外,它还有助于评估连续变量在分类问题中的重要性。
基于“气囊”类型的“马力”的密度图如下所示。
条形图用矩形条表示分类数据,条的权重与它们所代表的值成比例。条形图显示了离散类别之间的比较。
“类型”特征的条形图如下所示。同样,可以自定义它以显示Y轴上的“MPG.city”平均值,而不是显示计数。
饼图用于在圆形图中表示数据的数值比例。整个图表区域代表100%的数据,每个切片的弧长代表整体的相对百分比部分。
“类型”特征的饼图如下所示。
散点图使用点来表示两个不同的数值变量的值。它非常有助于观察两个数值变量之间的关系。
让绘制一个散点图,以评估“马力”和“MPG.city”之间的关系。从这个图中,可以观察到,随着“马力”的增加,“城市MPG”会减少。
Plotly还提供了绘制3D散点图的方法。让使用“马力”、“MPG.city”和“价格”特征来绘制相同的图。同样,可以绘制一个散点图矩阵(散点图的网格/矩阵),以评估每个变量组合之间的成对关系。
折线图是一种图表,它将信息显示为一系列称为“标记”的数据点,这些数据点通过直线段连接。它与散点图相似,只是测量点是有序的(通常按它们的x轴值排序),并用直线段连接。
折线图通常用于发现两个数值变量之间的关系或可视化时间序列数据的趋势。让绘制一个散点图,以评估“马力”和“MPG.city”之间的关系。
热力图是一种二维图形表示数据,其中矩阵值以不同颜色的阴影表示。热力图旨在提供数据/信息的颜色编码视觉摘要。
让绘制一个热力图,以表示“cars93”数据的相关性矩阵。
小提琴图与箱线图类似,但它们还显示了不同值处数据的概率密度。换句话说,小提琴图是箱线图和密度图的结合。小提琴图的较宽部分表示更高的概率,而较窄部分表示较低的概率。
“价格”特征的小提琴图如下所示。同样,可以使用Plotly自定义它以显示箱子和所有数据点。