在数据科学、数据分析或数据工程的生命周期中,数据可视化是一个至关重要的步骤。通过使用色彩和图形来展示研究或分析,可以使信息更加印象深刻、有趣且易于理解。利用图表、地图等视觉元素,客户可以更容易地理解数据集内部的结构、趋势、模式以及变量之间的关系。仅仅使用纯数字来解释数据摘要和分析,对于技术和非技术背景的人来说都变得复杂。数据可视化为提供了清晰的数据传达信息,使能够中立地理解数据洞察。
数据可视化涉及操作大量数据,并将其转换为有意义的视觉图像,使用各种工具。为了可视化数据,需要最好的软件工具来处理来自不同来源的结构化或非结构化数据,如文件、Web API、数据库等。必须选择满足所有需求的最佳可视化工具。该工具应支持交互式图表生成、连接数据源、组合数据源、自动刷新数据、安全访问数据源和导出小部件。所有这些功能使能够制作最佳的数据视觉,并节省时间。
易于理解:管理者和决策者使用数据可视化工具轻松快速地创建图表,并迅速消费重要的指标。这些指标清晰地显示了业务的增长或损失。例如,如果某个地区的销售额显著下降,决策者可以轻松地从数据中找出当前的情况或决策以及如何应对遇到的因素。通过图形表示,可以非常清晰和连贯地解释数据的广泛特征,使能够理解数据并从这些洞察中得出结论,看到业务前景。
快速决策:人脑处理视觉图像的速度比文本和数值快。因此,看到图表、图形或其他视觉和图形表示的数据对大脑来说更愉快且易于处理。阅读和理解文本,然后将其转换为可能不完全准确的数据可视化变得困难且耗时,对于决策者团队来说难以理解。人类很容易解释视觉数据;数据可视化完全证明了提高决策过程的速度。数据可视化总是有助于缩短业务会议和有效决策。
更好的分析:数据可视化对于业务利益相关者分析业务报告,如销售、营销策略和产品兴趣,起着重要作用。更好的分析可以将注意力集中在需要更多关注以改进策略、增加利润并使业务更具生产力的领域。
识别模式:大量复杂的数据在可视化后将提供多个洞察机会。可视化允许业务用户认识到数据之间的关系和模式,也为其提供更大的意义。探索这些模式有助于用户集中关注数据中需要关注的具体领域,以确定这些领域的重要性,推动业务向前发展。
检测错误:可视化数据有助于快速确定数据中的任何错误。如果数据倾向于建议错误的行动,可视化有助于更快地检测不准确的数据,使其远离分析。
探索业务洞察:在当前竞争激烈的商业环境中,使用视觉表示找到数据相关性对于描述业务洞察至关重要。探索这些洞察对于业务用户或高管来说非常重要,以便为实现业务目标找到正确的路径。
有效的讲故事:数据可视化因其展示数据以产生支持更好决策的洞察而受到认可,即讲述数据背后的故事。它可以提供因素,引起并吸引关键洞察的注意力,并在视觉上超越其他业务。
发现市场最新趋势:使用数据可视化,将能够发现业务中的最新趋势,以生产优质产品并预测问题。保持对趋势的了解,可以将更多的努力投入到增加业务利润中。
Pandas库在Python中主要用于数据分析。它不是一个数据可视化库,但可以使用Pandas创建基本的图表。如果想要创建探索性数据分析图表,Pandas非常有用且实用。不需要为此类任务导入其他数据可视化库。
作为Python流行的数据分析库,Pandas提供了多种不同的函数来帮助使用.plot()函数可视化数据。使用Pandas进行可视化的一个优势是可以序列化或创建数据分析函数和绘图函数的管道。这简化了任务。
让了解如何使用Pandas进行数据可视化的实际实施以及所有其他功能。为了可视化数据,将创建一个包含4列随机值的DataFrame,使用Numpy random.rand()函数。使用的IDE是Google Colab。让一个接一个地创建每种类型的图表。
# 导入包
import numpy as np
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame(np.random.rand(10, 4), columns=('col_1', 'col_2', 'col_3', 'col_4'))
# 由于这是一个随机生成的DataFrame,每次运行此代码时,值都会有所不同。
# 显示DataFrame
print(df)
这是将在所有可视化中使用的DataFrame。将使用DataFrame和Series的.plot()函数来绘制图表。对于DataFrame和Series,.plot()函数是一个方便的功能,可以绘制所有列以及标签。
线图:可以使用DataFrame.plot()函数创建线图。
df.plot()
得到了df的熟练线图,而没有在.plot()函数中指定任何类型的特征。也可以绘制两个列之间的图表。让看另一个例子:
df.plot(x="col_1", y="col_2")
在这个例子中,仅通过为x轴和y轴提供参数,就绘制了两个列之间的线图。还可以为单独的列生成子图。让看一个例子:
df.plot(subplots=True, figsize=(8, 8));
为DataFrame的每个列生成了线图的子图。
条形图:现在,将为同一个DataFrame创建条形图。条形图可以使用DataFrame.plot.bar()函数创建。
df.plot(kind="bar")
可以看到,为所有列生成了条形图。让在图表中指定一些特征。
df.plot.bar(stacked=True);
在这个条形图中,条形是堆叠的。
df.plot.barh(stacked=True);
在这个条形图中,条形是水平设置的。
直方图:现在,让为df生成直方图。直方图可以使用DataFrame.plot.hist()函数创建。
df.plot.hist()
现在,让创建一个具有其他特征的直方图。
df.plot.hist(stacked=True, bins=20);
这是一个堆叠直方图。
df.plot.hist(orientation="horizontal", cumulative=True);
在这里,在直方图中添加了累积频率。让为每个列单独创建直方图。
df.diff().hist();
为DataFrame的每个列以子图形式创建了直方图。
箱形图:现在,将创建箱形图。箱形图可以使用DataFrame.plot.box()函数或DataFrame.boxplot()创建。
df.plot.box()
或者也可以这样写:
df.boxplot()
上述两行代码将生成相同的箱形图。现在,生成水平格式的箱形图。
df.plot.box(vert=False, positions=[1, 2, 3, 4]);
以水平格式生成了箱形图。
面积图:现在,将创建面积图。面积图可以使用DataFrame.plot.area()函数创建。
df.plot.area()
这是DataFrame df的面积图。这个图是堆叠的。现在,将创建非堆叠面积图。
df.plot.area(stacked=False)
这个面积图是非堆叠的,因为在绘图函数中指定了。
散点图:现在,让生成一个散点图。散点图可以使用DataFrame.plot.scatter()函数创建。知道散点图需要两个位置参数,即x和y来绘制图表。因此,将x轴和y轴的值作为列的名称给出。
df.plot.scatter(x='col_1', y='col_3');
这是DataFrame df中col_1和col_3之间的散点图。让应用一些样式。
ax=df.plot.scatter(x="col_1", y="col_3", color="red", marker="*", s=100)
df.plot.scatter(x="col_2", y="col_4", color="orange", s=100, ax=ax)
在这个图表中,数据根据col_2和col_4扩散,还添加了一些样式,如颜色、标记和散点的大小。让看看另一种风格的散点图。
df.plot.scatter(x="col_2", y="col_4", c='col_1', s=100)
c关键字给出作为列名,为每个点提供颜色。
饼图:可以使用DataFrame.plot.pie()函数或Series.plot.pie()创建饼图。要生成饼图,将创建一个名为pie的系列数据,因为饼图仅针对一个列创建。让创建一个系列。
pie = pd.Series(np.random.rand(5))
pie
现在,让创建一个饼图。
pie.plot.pie();
饼图也可以为DataFrame创建,但它将为DataFrame的每个列生成单独的饼图,以子图的形式。让也为DataFrame创建一个饼图。首先,将创建一个具有三个列的DataFrame,然后为每个列生成饼图。
# 创建一个DataFrame
df2 = pd.DataFrame(np.random.rand(6, 3),
columns=('col_1', 'col_2', 'col_3'))
# 显示DataFrame
df2
这是饼图的DataFrame df2。现在,让生成图表。
df2.plot.pie(subplots=True, figsize=(15, 15))