微网站开发费用,电子商务网站保密协议,郑州做网站推广的公司哪家好,网站建设旗舰品牌目录 文章导航一、介绍二、安装Seaborn三、导入Seaborn四、设置可以中文显示五、占比类图表1、饼图2、环形图 六、比较排序类1、条形图2、箱线图3、小提琴图 七、趋势类图表1、折线图 八、频率分布类1、直方图 九、关系类图表1、散点图2、成对关系图3、热力图 文章导航
【一 简… 目录 文章导航一、介绍二、安装Seaborn三、导入Seaborn四、设置可以中文显示五、占比类图表1、饼图2、环形图 六、比较排序类1、条形图2、箱线图3、小提琴图 七、趋势类图表1、折线图 八、频率分布类1、直方图 九、关系类图表1、散点图2、成对关系图3、热力图 文章导航
【一 简明数据分析进阶路径介绍文章导航】
一、介绍
Seaborn同Matplotlib一样也是Python进行数据可视化分析的重要第三方包。但Seaborn在Matplotlib的基础上进行了更高级的API封装使得作图更加容易图形更加漂亮。Seaborn是基于Matplotlib产生的一个模块专攻统计可视化可以和Pandas进行无缝链接使初学者更容易上手。相对于MatplotlibSeaborn语法更简洁两者的关系类似于NumPy和Pandas之间的关系。
但是应该强调的是应该把Seaborn视为Matplotlib的补充而不是替代物。
二、安装Seaborn
pip install seaborn三、导入Seaborn
import seaborn as sns四、设置可以中文显示
import matplotlib.pyplot as plt # 设置matplotlib支持中文显示
plt.rcParams[font.sans-serif] [SimHei] # 使用黑体
plt.rcParams[axes.unicode_minus] False # 解决负号-显示为方块的问题
from matplotlib import font_manager # 设置Matplotlib配置参数
plt.rcParams[font.sans-serif] [SimHei] # 使用黑体
plt.rcParams[axes.unicode_minus] False # 正确显示负号五、占比类图表
1、饼图
import matplotlib.pyplot as plt # 假设我们有以下数据
labels [类别A, 类别B, 类别C, 类别D]
sizes [15, 30, 45, 10] # 百分比或数量 # 绘制占饼图
fig1, ax1 plt.subplots()
ax1.pie(sizes, labelslabels, autopct%1.1f%%, startangle90)
ax1.axis(equal) # Equal aspect ratio ensures that pie is drawn as a circle. plt.title(占饼图示例)
plt.show()2、环形图
import matplotlib.pyplot as plt
import numpy as np # 假设我们有以下数据
labels [类别A, 类别B, 类别C, 类别D]
sizes [15, 30, 45, 10] # 外环数据
sizes_inner [10, 15, 30, 5] # 内环数据 # 确保内环数据不超过外环数据
sizes_inner [min(s, si) for s, si in zip(sizes, sizes_inner)] # 计算百分比
sizes_pct [s / sum(sizes) * 100 for s in sizes]
sizes_inner_pct [si / sum(sizes_inner) * 100 for si in sizes_inner] # 绘制环形图
fig, ax plt.subplots() # 外环
ax.pie(sizes, labelslabels, colors[blue], wedgepropsdict(width0.3, edgecolorw), startangle90) # 内环
ax.pie(sizes_inner, colors[red], wedgepropsdict(width0.1, edgecolorw), startangle90) # 绘制中心圆
ax.add_artist(plt.Circle((0.5, 0.5), 0.05, fcwhite, ecwhite)) # 添加百分比标签
def func(pct, allvals): absolute int(round(pct/100.*np.sum(allvals))) return {:.1f}% ({}).format(pct, absolute) # 外环百分比标签
wedges, texts, autotexts ax.pie(sizes, labelslabels, autopctlambda pct: func(pct, sizes), wedgepropsdict(width0.3, edgecolorw), startangle90) # 设置标题和等比例显示
ax.set_title(环形图示例)
ax.axis(equal) plt.show()六、比较排序类
1、条形图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd # 假设有一个包含分类变量和连续变量的DataFrame
data pd.DataFrame({ Category: [A, B, C, D, E], Value: [23, 17, 35, 29, 12]
}) # 绘制条形图
sns.barplot(xCategory, yValue, datadata) # 设置图表标题和轴标签
plt.title(条形图示例不同类别的值)
plt.xlabel(类别)
plt.ylabel(值) # 显示图表
plt.show()2、箱线图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np # 假设有一个包含分类变量和连续变量的DataFrame
np.random.seed(0) # 设置随机种子以获得可复现的结果
data pd.DataFrame({ Category: [A, B, C, A, B, C, A, B, C], Value: np.random.randn(9) * 100 # 生成正态分布的数据
}) # 绘制箱线图
sns.boxplot(xCategory, yValue, datadata) # 设置图表标题和轴标签
plt.title(箱线图示例不同类别的值分布)
plt.xlabel(类别)
plt.ylabel(值) # 显示图表
plt.show()3、小提琴图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np # 假设有一个包含分类变量和连续变量的DataFrame
np.random.seed(0) # 设置随机种子以获得可复现的结果
data pd.DataFrame({ Category: [A, B, C, A, B, C, A, B, C], Value: np.random.randn(9) * 100 # 生成正态分布的数据
}) # 绘制小提琴图
sns.violinplot(xCategory, yValue, datadata) # 设置图表标题和轴标签
plt.title(小提琴图示例不同类别的值分布)
plt.xlabel(类别)
plt.ylabel(值) # 显示图表
plt.show()七、趋势类图表
1、折线图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np # 假设我们有一个包含时间序列和数值的数据集
np.random.seed(0)
data pd.DataFrame({ date: pd.date_range(start2023-01-01, periods12), value: np.random.randn(12).cumsum()
}) # 绘制线图
sns.lineplot(datadata, xdate, yvalue) # 设置图表标题和轴标签
plt.title(折线图示例随时间变化的数值)
plt.xlabel(日期)
plt.ylabel(值) # 显示网格
plt.grid(True) # 显示图表
plt.show()八、频率分布类
1、直方图
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np # 生成随机数据
np.random.seed(0)
data np.random.randn(1000) # 绘制直方图
sns.histplot(data, kdeTrue) # 设置图表标题和轴标签
plt.title(直方图示例数据分布)
plt.xlabel(值)
plt.ylabel(频数) # 显示网格
plt.grid(True) # 显示图表
plt.show()九、关系类图表
1、散点图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd # 创建一个模拟的数据集
data pd.DataFrame({ Math: [85, 92, 78, 95, 88, 76, 91, 82, 79, 85], English: [88, 90, 82, 93, 87, 79, 92, 83, 80, 86]
}) # 绘制散点图
sns.scatterplot(datadata, xMath, yEnglish, hueMath) # 添加图例标题
plt.legend(title数学成绩) # 设置图表标题和轴标签
plt.title(学生数学和英语成绩散点图)
plt.xlabel(数学成绩)
plt.ylabel(英语成绩) # 显示网格
plt.grid(True) # 调整图表大小
plt.figure(figsize(8, 6)) # 显示图表
plt.show()2、成对关系图
import seaborn as sns
import pandas as pd
import numpy as np # 假设我们有一个包含多个连续变量的数据集
np.random.seed(0)
data pd.DataFrame(np.random.randn(200, 4), columns[A, B, C, D]) # 绘制成对关系图
sns.pairplot(data, kindreg) # 添加线性回归线 # 设置图表标题
plt.suptitle(成对关系图示例多个连续变量之间的关系, y1.05) # 显示图表
plt.show()3、热力图
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np # 创建一个随机的相关系数矩阵
np.random.seed(0)
corr_matrix np.random.rand(6, 6)
corr_matrix (corr_matrix corr_matrix.T) / 2 # 保证矩阵是对称的
np.fill_diagonal(corr_matrix, 1) # 对角线元素设为1 # 绘制热力图
sns.heatmap(corr_matrix, annotTrue, cmapcoolwarm) # 设置图表标题
plt.title(热力图示例相关系数矩阵)