python之Seaborn章节
小提琴图可以表示数据的密度,数据的密度越大的区域越胖。“小提琴”形状表示数据的核密度估计,每个点的形状宽度表示该点的数据密度。Serborn是基于python的可视化库,基于Matplotlib库进行构建,提供了更高级别的界面和更好看的默认风格。在Seaborn中,设置图表标题可以使用plt.title()函数,这是基于Matplotlib库的函数。为数据中的变量名,用于区分不同分类对象的线,hu
目录
一、Seaborn安装与导入
Serborn是基于python的可视化库,基于Matplotlib库进行构建,提供了更高级别的界面和更好看的默认风格。
Seaborn的特点:
- Seaborn是基于Matplotlib的更高级别的封装,使得作图更加容易,且图形更加美观;
- Seaborn提供了更漂亮的默认样式和调色板,使统计图形更具吸引力;
- Seaborn与pandas的数据结构紧密集成,使得数据处理和可视化更加方便;
- 可针对于统计绘图,用于数据的统计描述和探索分析,补充Matplotlib作图风格
1.1 安装与升级
# 镜像安装
# pip install seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple
#卸载包
# pip uninstall seaborn
1.2 导入
import seaborn as sns
# 查看方法
dir(sns)
1.3 创建数据集+绘图
import pandas as pd
import numpy as np
import random
# 商品品类列表
categories = ['办公家具', '厨房电器','家装饰品', '床品件套', '电脑硬件']
# 使用列表生成式随机生成分类字段的值
random_categories = [random.choice(categories) for i in range(30)]
# 导入数据
df = pd.DataFrame(data={'销售日期':pd.date_range('20231101',periods=30),
'销售数':np.random.randint(100,1000,30),
'销售单均':np.random.randint(50,100,30),
'销售成本':np.random.randint(500,1000,30),
'商品品类':random_categories}
)
df['日期'] = df['销售日期'].dt.day
df['销售额'] = df['销售数']*df['销售单均']
df['利润']=df['销售额']-df['销售成本']
df.head()
# 使用上述数据绘制简单的折线图
import seaborn as sns
sns.lineplot(x='日期',y='销售数',data=df)
二、serborn图表设置
如何对图表进行个性化与专业化的调整,以更好地满足数据分析与呈现的需求。
Seaborn图表设置包括:设置线型、设置颜色、分类对象、图表标题、使用主题几个方面
2.1 设置线型
import seaborn as sns
import seaborn as sns
# linestyle 线型
# linewidth 线宽
# marker 标记点
# markersize 标记大小
sns.lineplot(x='日期',y='销售数',data=df,linestyle= "--",linewidth=1,marker="o",markersize=5)
2.2 设置颜色
通过color参数来设置颜色。可以设置单色或多色填充,设置渐变色等
import seaborn as sns
# 获取官方配色并转换为十六进制颜色值
colors = sns.color_palette().as_hex()
# 添加序号并打印颜色值
for idx, color in enumerate(colors):
print(f'第{idx + 1}种官方配色颜色值:{color}')
import seaborn as sns
sns.lineplot(x='日期',y='销售数',data=df,color=sns.color_palette()[5]) #调用颜色sns.color_palette()[5] 第5种官方配色颜色值:#8172b3
2.3 分类对象
在绘制涉及类别数据的图表时,可以设置分类对象的属性,例如类别标签的字体、颜色、位置等,以确保类别之间的清晰区分,hue为数据中的变量名,用于区分不同分类对象的线,hue_order对hue变量的排序顺序。
import seaborn as sns
sns.lineplot(x='日期',y='销售数',data=df,hue='商品品类',
hue_order=['电脑硬件','办公家具','家装饰品','床品件套','厨房电器'])#用于区分不同的线。
2.4 图表标题
在Seaborn中,设置图表标题可以使用plt.title()函数,这是基于Matplotlib库的函数。
# 设置标题
plt.title('双十一销售量数据趋势',fontsize=12,color='k')
2.5 使用主题
Seaborn库中有五种风格主题:darkgrid、whitegrid、dark、white、ticks。
可通过调用seaborn.set_style()函数来全局设置主题样式
import seaborn as sns
sns.set_style("darkgrid")#设置darkgrid主题
sns.lineplot(x='日期', y='销售数', data=df)
- Seaborn官网画廊:Example gallery — seaborn 0.13.2 documentation
三、serborn基础图表
3.1 折线图
import seaborn as sns
import matplotlib.pyplot as plt #导入matplotlib包
plt.figure(figsize = (9, 6)) #设置图表画布大小
sns.lineplot(x="日期",y="销售数",data=df)
3.2 柱形图
3.3 计数图
3.4 箱线图
3.5 热力图
一般用于显示各类别产品的数量多少
# 绘制热力图
plt.figure(figsize = (9, 6)) #设置图表画布大小
group_df = df.pivot_table(index='日期',columns='商品品类',values='销售数',aggfunc='sum') # 准备透视表数据
sns.heatmap(data=group_df,cmap= 'YlOrRd')
3.6 热图
热图经常用于显示数据集中的各种因素如何相互关联,比如相关系数
3.7 散点图
# 绘制散点图
plt.figure(figsize = (9, 6)) #设置图表画布大小
sns.scatterplot(x='销售数',y='销售额',data=df)
四、seaborn统计图表
4.1 小提琴图
小提琴图可以表示数据的密度,数据的密度越大的区域越胖。“小提琴”形状表示数据的核密度估计,每个点的形状宽度表示该点的数据密度。
4.2 点图
用于显示一组数据及其变异性的平均值或集中趋势。点图通常用于探索性数据分析,可以快速可视化数据集的分布或比较多个数据集
4.3 分簇散点图
用于不同类别产品的散点图显示在同一张图标,类似多条折线图,不会重叠。
4.4 回归图
用于绘制线性模型图,这个函数主要用于探索两个变量之间的关系,并可以拟合一个线性回归模型
4.5 分类散点图
4.6 散点图矩阵
#散点图矩阵
sns.pairplot(data=df[['销售数','销售单均','销售成本','销售额','利润','商品品类']],hue='商品品类')

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)