一维数据可视化指南

数据可视化是一种将数据以创造性和直观的方式呈现的技能,它允许最终用户无需任何技术背景就能理解数据摘要。因此,它比单纯处理数字更受青睐。本文将探讨如何使用图表和图形来可视化一维数据

导入相关库

import numpy as np import matplotlib.pyplot as plt import seaborn as sb import pandas as pd sb.set(rc = {'figure.figsize':(10,6)}) plt.rcParams["figure.figsize"] = (10,6)

这些库各自对本文的贡献如下:

  • NumPy:用于轻松处理数学运算。
  • Matplotlib:帮助实现累积分布函数图(CDF)。
  • Seaborn:基于Matplotlib的数据可视化库,本文将广泛使用。
  • Pandas:用于DataFrame操作的库,本文将用它来创建DataFrame。

数据集读取与初步分析

d1 = np.loadtxt("example_1.txt") d2 = np.loadtxt("example_2.txt") print(d1.shape, d2.shape)

通过NumPy的loadtxt函数读取两个基于文本的数据集,并查看输出,可以指出每个数据集有500个数据点。

Bee Swarm Plots(蜜蜂群图)

Bee Swarm Plots的最佳之处在于,除了显示数据集的分布外,还可以通过调整数据点的大小来查看每个数据点。

dataset = pd.DataFrame({ "value": np.concatenate((d1, d2)), "type": np.concatenate((np.ones(d1.shape), np.zeros(d2.shape))) }) dataset.info()

Swarm plots类似于散点图(显示完整的数据表示),但它们在轴上包含分类数据,这使它们与一般的散点图不同。因此,首先创建一个DataFrame,其中包含一些值及其分类类型。

sb.swarmplot(data = dataset["value"], size=5);

在上述图表中,可以看到数据点更密集的地方以及数据点从中心向左右发散的地方。

Box Plots(箱形图)

接下来讨论另一种数据可视化图表,即箱形图,也称为箱须图,因为两端有类似猫须的须状物。

sb.boxplot(x="type", y="value", data=dataset, whis=3.0); sb.swarmplot(x="type", y="value", data=dataset, size=2, color="k", alpha=0.3);

箱形图非常适合一维数据,因为它展示了多种统计量,如异常值、中位数、25%分位数、50%分位数和75%分位数。

Violin Plots(小提琴图)

如果想要更多的信息,可以使用小提琴图。这种图表特别适合多峰数据(当数据有一个以上的峰值时)。

sb.violinplot(x="type", y="value", data=dataset); sb.swarmplot(x="type", y="value", data=dataset, size=2, color="k", alpha=0.3);

使用了Swarm plot和Violin plot的组合,其中Swarm plot显示了每个数据点的表示,而小提琴图显示了自创建的DataFrame中两种类型的完整分布。

当创建直方图时,由于需要对数据进行分箱,因此当改变箱的大小时,外观可能会发生显著变化。CDF可以帮助绕过这个问题。

sd1 = np.sort(d1) sd2 = np.sort(d2) cdf = np.linspace(1/d1.size, 1, d1.size) plt.plot(sd1, cdf, label="D1 CDF") plt.plot(sd2, cdf, label="D2 CDF") plt.hist(d1, histtype="step", density=True, alpha=0.3) plt.hist(d2, histtype="step", density=True, alpha=0.3) plt.legend();
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485