【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码

目录

1. 数据分布的可视化

1.1 直方图(Histograms)

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

1.3 箱线图(Box Plot)

  1.4 小提琴图(Violin Plot)

​编辑1.5 散点图(Scatter Plot)

2. 数据关系的可视化

2.1  散点图矩阵(Pair Plot)

2.2  线性回归模型可视化(Linear Regression Plot)

​编辑

2.3 关联矩阵(Correlation Matrix Plot)

2.4 热力图(Heatmap)


         Seaborn库是一个基于Matplotlib的Python数据可视化库,它提供了一些用于创建漂亮和有吸引力的统计图形的高级接口。Seaborn库具有更简洁的语法和更丰富的默认设置,能够使用户更轻松地生成各种复杂图表。

1. 数据分布的可视化

1.1 直方图(Histograms)

        直方图用于可视化单变量数据的分布。它将数据划分为多个连续的区间(或"箱子")并绘制每个区间中数据点的频率或计数。

import seaborn as sns
import matplotlib.pyplot as plt

# 生成示例数据
data = sns.load_dataset("iris")

# 绘制直方图
sns.histplot(data=data['sepal_length'], kde=True)  # kde参数绘制核密度估计图
plt.xlabel("Sepal Length")
plt.ylabel("Frequency")
plt.title("Histogram of Sepal Length")
plt.show()

输出: 

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第1张图片

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

        核密度估计图用于估计连续数据的概率密度函数。Seaborn 的 kdeplot 函数可以用于创建核密度估计图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="darkgrid")
plt.figure(figsize=(8, 4))
sns.kdeplot(data=data["total_bill"], shade=True, color="salmon")
plt.xlabel("Total Bill")
plt.ylabel("Density")
plt.title("Kernel Density Estimation of Total Bill")

# 添加注释
plt.text(20, 0.04, "Peak here", fontsize=12, color="blue")

plt.show()

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第2张图片


1.3 箱线图(Box Plot)

        箱线图用于可视化数据的分散程度和异常值。Seaborn 的 boxplot 函数可用于创建箱线图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="whitegrid")
plt.figure(figsize=(8, 4))
sns.boxplot(data=data, x="day", y="total_bill", hue="time", palette="Set3")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill")
plt.title("Box Plot of Total Bill by Day and Time")

# 添加注释
plt.text(2, 45, "Median", fontsize=12, color="green")

plt.show()

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第3张图片

  1.4 小提琴图(Violin Plot)

        小提琴图结合了箱线图和核密度估计,用于可视化数据的分布和分散情况。Seaborn 的 violinplot 函数可用于创建小提琴图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="whitegrid")
plt.figure(figsize=(8, 5))
sns.violinplot(data=data, x="day", y="total_bill", hue="sex", split=True, palette="Set2")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill")
plt.title("Violin Plot of Total Bill by Day and Gender")

# 添加注释
plt.text(1, 45, "Median", fontsize=12, color="blue")

plt.show()

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第4张图片


1.5 散点图(Scatter Plot)

        散点图用于显示两个变量之间的关系。Seaborn 的 scatterplot 函数可用于创建散点图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="whitegrid")
plt.figure(figsize=(8, 5))
sns.scatterplot(data=data, x="total_bill", y="tip", hue="time", style="sex", markers=["o", "s"], palette="Set1")
plt.xlabel("Total Bill")
plt.ylabel("Tip")
plt.title("Scatter Plot of Total Bill vs. Tip")
plt.legend(title="Time")

# 添加注释
plt.text(10, 4, "Annotation Example", fontsize=12, color="red")

plt.show()

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第5张图片

2. 数据关系的可视化

        Seaborn 提供了多种方法来可视化数据关系,包括散点图矩阵、线性回归模型可视化、关联矩阵和热力图。

2.1  散点图矩阵(Pair Plot)

        散点图矩阵(Pair Plot)是一种用于可视化多个变量之间关系的有用工具。它在 Seaborn 中通过 sns.pairplot() 函数实现。散点图矩阵通常用于展示数据集中的多个数值型变量之间的散点图,以便观察它们之间的关系和分布。以下是有关散点图矩阵的详细信息和示例:

import seaborn as sns
import matplotlib.pyplot as plt

# 加载示例数据集
data = sns.load_dataset("iris")

# 创建散点图矩阵
sns.set(style="ticks")
sns.pairplot(data, hue="species", markers=["o", "s", "D"])
plt.show()

上述示例使用了鸢尾花数据集,其中包含鸢尾花的花萼和花瓣的测量数据。散点图矩阵通过 sns.pairplot() 创建,其中的参数说明如下:

  • data: 数据集,包含多个数值型变量。
  • hue: 用于着色的变量,通常是分类变量,以便在图中区分不同类别。
  • markers: 用于不同类别数据点的标记类型,可以根据需要指定。


2.2  线性回归模型可视化(Linear Regression Plot)

        线性回归模型可视化用于显示两个变量之间的线性关系,包括回归线和置信区间。Seaborn 的 lmplot 函数可以用于创建线性回归模型可视化。

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")  # 示例数据集
sns.lmplot(data=data, x="total_bill", y="tip", hue="time")
plt.show()

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第6张图片

        上述代码使用了餐厅小费数据集,其中包括了顾客总账单金额和小费的数据。hue 参数用于根据用餐时间对数据进行着色,以区分不同用餐时间的数据点。 

2.3 关联矩阵(Correlation Matrix Plot)

        关联矩阵用于显示多个变量之间的相关性。Seaborn 的 heatmap 函数可以用于绘制相关性矩阵的热力图。 

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")  # Load the "tips" dataset

# Select only the numeric columns for calculating the correlation matrix
numeric_data = data.select_dtypes(include='number')

correlation_matrix = numeric_data.corr()

sns.heatmap(correlation_matrix, annot=True, cmap="coolwarm")
plt.show()

【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码_第7张图片

        上述代码计算了小费数据集中各个数值型变量之间的相关性,并使用热力图可视化了相关性矩阵。annot=True 参数用于在热力图上显示相关性系数的数值。 


2.4 热力图(Heatmap)

        热力图(Heatmap)是一种用于可视化矩阵数据的强大工具,通常用于显示数据之间的关联、相关性或模式。在 Seaborn 中,您可以使用 heatmap 函数创建热力图。

使用 heatmap 函数创建热力图:

Seaborn 的 heatmap 函数可以将一个矩阵或数据框的数据以图形方式呈现出来。该函数的基本语法如下:

import seaborn as sns
import matplotlib.pyplot as plt

# 创建数据矩阵或数据框
data = ...

# 使用heatmap函数绘制热力图
sns.heatmap(data, cmap="YlGnBu")
plt.show()

参数说明:

  • data: 数据矩阵或数据框,用于创建热力图。
  • cmap: 颜色映射,用于指定热力图的颜色。
  • 常用的选项包括 "viridis"、"YlGnBu"、"coolwarm" 等。

示例:

以下是一个示例,展示如何使用 Seaborn 创建一个热力图,以可视化相关性矩阵:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("flights")  # 示例数据集
pivot_data = data.pivot_table(index="month", columns="year", values="passengers")
sns.heatmap(pivot_data, cmap="YlGnBu")
plt.show()

        上述代码使用了航班乘客数据集,将数据进行透视以创建一个矩阵,然后使用热力图可视化了这个矩阵。cmap 参数用于指定热力图的颜色映射。

你可能感兴趣的:(100天精通Python,python,开发语言,seaborn)