10种令人惊叹的数据分布可视化方法

10种令人惊叹的数据分布可视化方法

  • 数据可视化是理解数据、提取见解和做出明智决策的关键。它简化了数据的复杂性,揭示隐藏的模式,并有效传达数据见解。通过可视化,我们能发现数据中的模式、趋势、异常值和潜在关系。识别数据分布类型(如正态、偏斜、双峰),把握数据的范围和变异性,观察任何显著偏差或异常都成为可能。这种视觉呈现让我们更全面地理解数据,从而做出更明智的决策。

以下是10种可视化数据分布的技术,每种技术都附带有解释和示例:

  • 当涉及到可视化数据分布时,可以使用各种编程语言和库来实现。下面是使用Python和常见的数据可视化库matplotlib和seaborn以及plotly的代码示例:

首先,我们需要导入所需的库:

import matplotlib.pyplot as plt
import seaborn as sns

直方图(Histogram)

  • 解释:直方图通过一系列不等高的矩形条来展示数据的分布情况。每个矩形的宽度代表一个数据范围(称为组距),而高度则代表该范围内数据的频数或频率
import matplotlib.pyplot as plt  
import numpy as np    
# 随机数据  
data = np.random.randn(1000)  
  
# 绘制直方图  
plt.hist(data, bins=30, edgecolor='black')  
plt.title('Histogram')  
plt.xlabel('Value')  
plt.ylabel('Frequency')  
  
# 保存图形为文件  
plt.savefig('histogram.png')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

箱型图(Box Plot)

  • 解释:箱型图通过展示数据的五个关键统计量(最小值、第一四分位数、中位数、第三四分位数和最大值)来概括数据的分布情况。
import matplotlib.pyplot as plt  
import numpy as np  
 
# 随机数据  
np.random.seed(10)  
data = np.random.normal(100, 20, 200)  
  
# 绘制箱型图  
plt.boxplot(data, vert=False)  
plt.title('Box Plot')  
plt.xlabel('Value')  
plt.yticks([])  
  
# 保存图形为文件  
plt.savefig('boxplot.png')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

核密度估计图(Kernel Density Estimation Plot)

  • 解释:核密度估计图是一种非参数方法,用于估计数据的概率密度函数。它通过将每个数据点视为一个核函数,并将这些核函数叠加起来得到整体的密度估计。
import seaborn as sns  
import matplotlib.pyplot as plt  
import numpy as np  
  
# 随机数据  
data = np.random.randn(1000)  
  
# 绘制核密度估计图  
sns.kdeplot(data)  
plt.title('Kernel Density Estimation Plot')  
plt.xlabel('Value')  
plt.ylabel('Density')  
  
# 保存图形为文件  
plt.savefig('kdeplot.png')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

小提琴图(Violin Plot)

  • 解释:小提琴图结合了箱型图和核密度估计图的特性,不仅展示了数据的五个关键统计量,还通过核密度估计展示了数据的概率密度。
import seaborn as sns  
import matplotlib.pyplot as plt  
import numpy as np  
  
# 随机数据  
np.random.seed(10)  
data1 = np.random.normal(100, 20, 200)  
data2 = np.random.normal(90, 25, 200)  
  
# 绘制小提琴图  
plt.figure(figsize=(10, 6))  
sns.violinplot(data=[data1, data2])  
plt.title('Violin Plot')  
plt.xticks([0, 1], ['Group 1''Group 2'])  
plt.ylabel('Value')  
  
# 保存图形为文件  
plt.savefig('violinplot.png')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

累积分布函数图(Cumulative Distribution Function Plot)

  • 解释:累积分布函数图展示了数据中小于或等于某个值的比例。它通常用于描述数据的整体分布趋势。
import matplotlib.pyplot as plt  
import numpy as np  
from scipy.stats import norm  
  
# 均值和标准差  
mu, sigma = 0, 0.1  
  
# 累积分布函数值  
s = np.arange(mu - 3*sigma, mu + 3*sigma, 0.01)  
y = norm.cdf(s, mu, sigma)  
  
# 绘制累积分布函数图  
plt.plot(s, y)  
plt.title('Cumulative Distribution Function Plot')  
plt.xlabel('Value')  
plt.ylabel('Cumulative Probability')  
plt.show()
10种令人惊叹的数据分布可视化方法

散点图(Scatter Plot)

  • 解释:散点图用于展示两个变量之间的关系,通过点的位置和分布来揭示变量间的相关性或趋势。
import matplotlib.pyplot as plt  
import numpy as np  
  
# 随机数据  
x = np.random.rand(100)  
y = np.random.rand(100)  
  
# 绘制散点图  
plt.scatter(x, y)  
plt.title('Scatter Plot')  
plt.xlabel('X')  
plt.ylabel('Y')  
  
# 保存图形为文件  
plt.savefig('scatterplot.png')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

热力图(Heatmap)

  • 解释:热力图通过颜色的深浅来表示数据的大小或密度,适用于展示多维数据或空间数据的分布情况。
import seaborn as sns  
import numpy as np  
import matplotlib.pyplot as plt  
  
# 随机数据矩阵  
data = np.random.rand(10, 12)  
  
# 绘制热力图  
plt.figure(figsize=(10, 8))  
sns.heatmap(data, annot=True, cmap='coolwarm')  
plt.title('Heatmap')  
plt.xlabel('Columns')  
plt.ylabel('Rows')  
  
# 保存图形为文件  
plt.savefig('heatmap.png')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

二维密度图(2D Density Plot)

  • 解释:二维密度图用于展示两个连续变量之间的联合概率分布。它通过颜色的深浅来表示概率密度的高低,二维密度图通常用于展示两个变量之间的联合概率分布
  • 在Python中,可以使用seaborn库中的kdeplot函数或者jointplot函数来绘制二维密度图。这里我们使用jointplot函数,因为它同时绘制了二维密度图和两个变量的单变量分布。
import seaborn as sns  
import matplotlib.pyplot as plt  
import numpy as np  
  
# 随机生成二维数据  
np.random.seed(0)  
x = np.random.randn(1000)  
y = x + np.random.randn(1000) * 0.3  
  
# 绘制二维密度图  
sns.jointplot(x, y, kind="kde", color="m")  
plt.title('2D Density Plot')  
  
# 显示图形  
plt.show()
10种令人惊叹的数据分布可视化方法

树状图(Tree Diagram)

  • 解释:树状图用于展示数据的层次结构和分类情况,通过树的分支和节点来表示不同类别的数据和它们之间的关系, 树状图通常用于展示层次聚类结果或系统发育树等树形结构数据。在Python中,可以使用scipy库的cluster.hierarchy模块和matplotlib库来绘制树状图。
from scipy.cluster.hierarchy import dendrogram, linkage  
from matplotlib import pyplot as plt  
from sklearn.datasets import make_blobs  
  
# 创建模拟数据  
X, _ = make_blobs(n_samples=150, centers=3, cluster_std=0.60, random_state=0)  
  
# 使用'single'方法进行层次聚类  
linked = linkage(X, 'single')  
  
# 绘制树状图  
labelList = range(1, 151)  
dendrogram(linked,  
            orientation='top',  
            labels=labelList,  
            distance_sort='descending',  
            show_leaf_counts=True)  
plt.title('Dendrogram')  
plt.show()
10种令人惊叹的数据分布可视化方法

概率密度函数图 (Probability Density Function, PDF)

  • 概率密度函数图用于表示连续型随机变量的概率分布。通过PDF图,可以直观地观察到数据在某个取值范围内的概率分布情况。在Python中,可以使用matplotlib或seaborn等库来绘制PDF图。
import numpy as np  
import matplotlib.pyplot as plt  
from scipy.stats import norm  
  
# 生成正态分布的随机数据  
data = np.random.normal(0, 1, 1000)  
  
# 计算数据的均值和标准差  
mu, std = np.mean(data), np.std(data)  
  
# 创建正态分布的概率密度函数  
xmin, xmax = plt.xlim()  
x = np.linspace(xmin, xmax, 100)  
p = norm.pdf(x, mu, std)  
  
# 绘制概率密度函数图  
plt.plot(x, p, 'k', linewidth=2)  
title = "Probability Density Function"  
plt.title(title)  
plt.show()
10种令人惊叹的数据分布可视化方法
  • 这些可视化技术可以帮助用户更好地理解和分析数据的分布情况,从而做出更准确的决策和推断。不同的技术适用于不同的数据类型和分析目的,因此在实际应用中需要根据具体情况选择合适的技术。

  • 上述代码中的模拟数据仅用于示例,实际应用中你需要使用自己的数据集。此外,对于树状图的解释和解读需要基于你的具体应用场景和数据背景.

  • 如果你觉得文章还不错,请大家 点赞、分享、收藏、留言,创作不易,因为这将是我持续输出更多优质文章的最大动力!

原文始发于微信公众号(python小胡子):10种令人惊叹的数据分布可视化方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/276056.html

(0)
python学霸的头像python学霸bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!