Seaborn 提供了多种内置主题和颜色调色板,可以通过设置来改变图形的外观。
实例
import seaborn as sns # 设置主题和颜色调色板 sns.set_theme(style="whitegrid", palette="pastel")
通过设置 sns.set_theme() 函数,可以选择不同的主题和模板,以下是 Seaborn 内置的一些主题和模板:
主题(Theme)
darkgrid(默认):深色网格主题。
import seaborn as sns # 设置为 darkgrid 主题 sns.set_theme(style="darkgrid")
whitegrid:浅色网格主题。
import seaborn as sns # 设置为 whitegrid 主题 sns.set_theme(style="whitegrid")
dark:深色主题,没有网格。
import seaborn as sns # 设置为 dark 主题 sns.set_theme(style="dark")
white:浅色主题,没有网格。
import seaborn as sns # 设置为 white 主题 sns.set_theme(style="white")
ticks:深色主题,带有刻度标记。
import seaborn as sns # 设置为 ticks 主题 sns.set_theme(style="ticks")
模板(Context)
paper:适用于小图,具有较小的标签和线条。
import seaborn as sns # 设置为 paper 模板 sns.set_theme(context="paper")
notebook(默认):适用于笔记本电脑和类似环境,具有中等大小的标签和线条。
import seaborn as sns # 设置为 notebook 模板 sns.set_theme(context="notebook")
talk:适用于演讲幻灯片,具有大尺寸的标签和线条。
import seaborn as sns # 设置为 talk 模板 sns.set_theme(context="talk")
poster:适用于海报,具有非常大的标签和线条。
import seaborn as sns # 设置为 poster 模板 sns.set_theme(context="poster")
通过设置不同的主题和模板,可以调整 Seaborn 图形的大小、线条的粗细、颜色等属性,以适应不同的绘图场景。这些内置的主题和模板使得用户能够更轻松地创建美观且具有一致性的图形。
以下实例使用 Seaborn 和 Matplotlib 绘制了一个简单的柱状图,用于展示不同产品的销售情况:
实例
import seaborn as sns import matplotlib.pyplot as plt # 设置主题和颜色调色板 sns.set_theme(style="darkgrid", palette="pastel") # 示例数据 products = ["Product A", "Product B", "Product C", "Product D"] sales = [120, 210, 150, 180] # 创建柱状图 sns.barplot(x=products, y=sales) # 添加标签和标题 plt.xlabel("Products") plt.ylabel("Sales") plt.title("Product Sales by Category") # 显示图表 plt.show()
绘图函数
Seaborn 提供了多个绘图函数,用于创建各种统计图形,以下是 Seaborn 主要的几个绘图函数及相应的实例:
1. 散点图 - sns.scatterplot()
用于绘制两个变量之间的散点图,可选择添加趋势线。
实例
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 创建一个示例数据框 data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]} df = pd.DataFrame(data) # 绘制散点图 sns.scatterplot(x='A', y='B', data=df) plt.show()
2. 折线图 - sns.lineplot()
用于绘制变量随着另一个变量变化的趋势线图。
实例
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 创建一个示例数据框 data = {'X': [1, 2, 3, 4, 5], 'Y': [5, 4, 3, 2, 1]} df = pd.DataFrame(data) # 绘制折线图 sns.lineplot(x='X', y='Y', data=df) plt.show()
3. 柱状图 - sns.barplot()
用于绘制变量的均值或其他聚合函数的柱状图。
实例
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 创建一个示例数据框 data = {'Category': ['A', 'B', 'C'], 'Value': [3, 7, 5]} df = pd.DataFrame(data) # 绘制柱状图 sns.barplot(x='Category', y='Value', data=df) plt.show()
4. 箱线图 - sns.boxplot()
用于绘制变量的分布情况,包括中位数、四分位数等。
实例
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 创建一个示例数据框 data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]} df = pd.DataFrame(data) # 绘制箱线图 sns.boxplot(x='Category', y='Value', data=df) plt.show()
5. 热图 - sns.heatmap()
用于绘制矩阵数据的热图,通常用于展示相关性矩阵。
实例
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 创建一个示例数据框 data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]} df = pd.DataFrame(data) # 创建一个相关性矩阵 correlation_matrix = df.corr() # 使用热图可视化相关性矩阵 sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f") plt.show()
6. 小提琴图 - sns.violinplot()
用于显示分布的形状和密度估计,结合了箱线图和核密度估计。
实例
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 创建一个示例数据框 data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]} df = pd.DataFrame(data) # 绘制小提琴图 sns.violinplot(x='Category', y='Value', data=df) plt.show()