绘图 Seaborn
- 是什么
- 安装
- 使用
- 显示中文及负号
- 散点图
- 箱线图
- 小提琴图
- 堆叠柱状图
- 分面绘图
- 分类散点图
- 热力图
- 成对关系图
- 线图
- 直方图
是什么
Seaborn 是一个Python数据可视化库,它基于Matplotlib。Seaborn提供了高级的绘图接口,可以用来绘制各种统计图形,如线图、热图和分布图等,使得数据的可视化变得更加简单和快速。Seaborn的一些特点包括默认的美观度和自定义主题、多种可视化类型和方便的绘图函数等。Seaborn的使用也可以通过简单的代码完成,因此是一个非常流行的数据可视化工具。
安装
-
确认你已经安装了 Python 和 pip (Python 的包管理工具)。
如果你没有安装,可以从官网下载安装:https:/https://www.python.org/downloads/ -
打开终端 (Windows 用户可以使用 PowerShell 或命令提示符)。
-
在终端中输入以下命令来安装 Seaborn:
pip install seaborn
-
等待安装完成。
-
安装完成后,在 Python 中导入 Seaborn:
import seaborn as sns
现在,你已经成功安装了 Seaborn。
使用
显示中文及负号
# 配置中文字体路径,替换成您的字体文件路径
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示问题
plt.rcParams['axes.unicode_minus'] = False
散点图
import seaborn as sns
import matplotlib.pyplot as plt
# 配置中文字体路径,替换成您的字体文件路径
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示问题
plt.rcParams['axes.unicode_minus'] = False
# 创建一个示例数据集
# 这里使用Seaborn内置的数据集,你也可以使用自己的数据集
tips = sns.load_dataset("tips")
# 创建散点图
sns.scatterplot(x="total_bill", y="tip", data=tips)
# 添加标题和标签
plt.title("散点图示例")
plt.xlabel("总账单金额")
plt.ylabel("小费金额")
# 显示图形
plt.show()
上面的代码执行以下操作:
导入Seaborn
和Matplotlib
库。
使用sns.load_dataset()
加载一个内置的示例数据集(在此示例中使用的是名为"tips
"的数据集,包含了餐厅账单和小费数据)。
使用sns.scatterplot()
创建一个散点图,指定x
和y
轴的数据列以及数据集。
使用plt.title()
、plt.xlabel()
和plt.ylabel()
添加标题和标签。
最后,使用 plt.show() 显示图形。
箱线图
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("箱线图示例")
plt.xlabel("日期")
plt.ylabel("总账单金额")
plt.show()
小提琴图
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.violinplot(x="day", y="total_bill", data=tips)
plt.title("小提琴图示例")
plt.xlabel("日期")
plt.ylabel("总账单金额")
plt.show()
堆叠柱状图
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.barplot(x="day", y="total_bill", data=tips, hue="sex")
plt.title("堆叠柱状图示例")
plt.xlabel("日期")
plt.ylabel("总账单金额")
plt.show()
分面绘图
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.relplot(x="total_bill", y="tip", data=tips, col="time", hue="sex")
plt.suptitle("分面绘图示例")
plt.show()
分类散点图
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True, hue="sex", dodge=True)
plt.title("分类散点图示例")
plt.xlabel("日期")
plt.ylabel("总账单金额")
plt.show()
热力图
import seaborn as sns
import matplotlib.pyplot as plt
# 创建一个示例数据框
import pandas as pd
data = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [3, 4, 1, 5, 2],
'C': [5, 2, 3, 1, 4]})
# 计算相关性矩阵
correlation_matrix = data.corr()
# 使用heatmap函数创建相关性矩阵的热力图
sns.heatmap(correlation_matrix, annot=True, cmap="YlGnBu")
# 添加标题
plt.title("相关性矩阵的热力图示例")
# 显示图表
plt.show()
成对关系图
import seaborn as sns
import matplotlib.pyplot as plt
# 加载示例数据集(这里使用的是Iris数据集)
iris = sns.load_dataset("iris")
# 使用pairplot创建成对关系图,设置hue参数来根据类别进行颜色分组
sns.pairplot(iris, hue="species")
# 添加标题
plt.title("Iris数据集的成对关系图")
# 显示图表
plt.show()
线图
import seaborn as sns
import matplotlib.pyplot as plt
# 配置中文字体路径,替换成您的字体文件路径
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示问题
plt.rcParams['axes.unicode_minus'] = False
fmri = sns.load_dataset("fmri")
sns.lineplot(x="timepoint", y="signal", data=fmri, hue="event")
plt.title("线图示例")
plt.xlabel("时间点")
plt.ylabel("信号强度")
plt.show()
直方图
import seaborn as sns
import matplotlib.pyplot as plt
# 配置中文字体路径,替换成您的字体文件路径
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号显示问题
plt.rcParams['axes.unicode_minus'] = False
tips = sns.load_dataset("tips")
sns.histplot(data=tips, x="total_bill", bins=20, kde=True)
plt.title("直方图示例")
plt.xlabel("总账单金额")
plt.ylabel("频数")
plt.show()