task3 seaborn

Seaborn是基于matplotlib的高级封装库,简化科研绘图,支持统计关系、数据分布、分类和回归模型分析。它提供多种功能如scatterplot,displot,violinplot等,以及FacetGrid和PairGrid用于多维度数据可视化。同时,Seaborn还支持丰富的绘图风格、颜色主题和比例调整。
摘要由CSDN通过智能技术生成

about Seaborn

  • 在matplotlib上进行了更加高级的封装, 能够用少数代码画出具有丰富统计信息的科研论文配图

  • 降低用户的学习成本和绘图的繁琐程度

  • 也可以根据seaborn函数中所能支持的修改参数, 进行复杂绘图定制

  • 可以绘制的图包括

    • 统计关系型, statistical relationships
    • 数据分布型, distributions of data
    • 分类数据型, categorical data
    • 回归模型分析型, regression models
    • 多子图网格型, multi-plot grids

关系型图

  • 通过相互关系和相互依赖程度, 分析变量间的相关性
  • scatterplt(), relplot(), lineplot()
plot functioncore parametersplot category
scatterplotx, y, hue (颜色映射), size (映射大小), data (DataFrame/ndarray 数据类型), palette (颜色系), size (数据标记大小), estimator (评估聚类方法), ci (置信区间)散点图, 气泡图
relplotx, y, hue, palette, legend, kind, markers数据拟合散点图
lineplotx, y, hue, paletter, legend, kind, markers, estimator, ci, err_style, err_kws线图, 带标记的线图
数据分布型图
  • 进行数据分析前, 了解数据分布情况, 包括覆盖范围, 中心趋势, 异常数值等
plot functioncore parametersplot category
displot()data, x, y, hue, kind (绘图类别), rug (数据分布短线), rug_kws, color数据分布图
histplot()data, x, y, hue, weights (分布权重), bins (箱的总数), binwidth, binrange, kde (密度曲线), kde_kws, line_kws, cbar (双变量图颜色柱), cbar_kws直方图
kdeplot()x, y, shade (是否填充), kernel (内核), hue, palette, bw_method (平滑带宽方法)核密度图
ecdfplot()data, x, y, hue, stat (计算分布统计), palette经验分布函数 (或称为经验累积分布函数,即 ECDF)图
rugplot()x, y, height (覆盖轴范围比例), hue, palette, expand_margins (是否增加 rug 与轴的高度,避免它与其他元素重合)轴底部毯形图
分类数据型图
  • 数据中存在分类/离散变量, 使用XY轴作为分类轴
plot functioncore parametersplot category
stripplot()x, y, hue, data, order, hue_order, jitter (抖动), dodge (分组), orient (方向), color, palette, size, edgecolor, linewidth, ax抖动散点图
swarmplot()x, y, hue, data, order, hue_order, dodge, orient, color, palette, size, edgecolor, linewidth, ax蜂巢图
boxplot()x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth, whis, ax, notch箱线图
violinplot()x, y, hue, data, order, hue_order, bw, cut, scale, scale_hue, gridsize, width, inner, split, dodge, orient, linewidth, color, palette, saturation, ax带误差线小提琴图
boxenplot()x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, k_depth, linewidth, ax增强箱线图
pointplot()x, y, hue, data, order, hue_order, estimator, ci, n_boot, units, markers, linestyles, dodge, orient, color, palette, errwidth, capsize, ax带误差线点图
barplot()x, y, hue, data, order, hue_order, estimator, ci, n_boot, units, orient, color, palette, saturation, errcolor, errwidth, capsize, dodge, ax带误差线条形图
countplot()x, y, hue, data, order, hue_order, orient, color, palette, saturation, dodge, ax分类统计柱形图
回归模型分析型图
  • 使用回归模型分析, 表示数据集中变量间的关系
plot functioncore parametersplot category
lmpplot()x, y, data, x_estimator, x_bins, x_ci, scatter, fit_reg, ci, n_boot, units, order, logistic, lowess, robust, logx, x_partial, y_partial, truncate, x_jitter, y_jitter, scatter_kws, line_kws, ax线性回归模型图
residplot()x, y, data, lowess, x_partial, y_partial, order, robust, dropna, label, color, scatter_kws, line_kws, ax线性回归模型残差图
regplot()x, y, data, x_estimator, x_bins, x_ci, scatter, fit_reg, ci, n_boot, units, order, logistic, lowess, robust, logx, x_partial, y_partial, truncate, x_jitter, y_jitter, scatter_kws, line_kws, ax线性回归模型图

分类数据型图

FacetGrid() 函数
  • 实现行, 列, 色调3个维度的数值映射
  • 每行每列都是df中一个列中的类别
g = sns.FacetGrid(tips, row="sex", col="time", hue="smoker")
g.map(sns.scatterplot, "total_bill", "tip", alpha=.7)  # scatters
g.map(sns.regplot, "total_bill", "tip", ci=95)  # linear regression
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('tips dataset, sex | time | smoker', fontsize=16)
g.add_legend()
PairGrid() 函数
  • 显示数据集中成对变量间的关系
  • 每行每列都是df中的一个列
penguis = sns.load_dataset("penguins")
x_vars = ["body_mass_g", "bill_length_mm", "bill_depth_mm", "flipper_length_mm", ]
y_vars = ["body_mass_g", "bill_length_mm", "bill_depth_mm", "flipper_length_mm", ]
g = sns.PairGrid(penguis, hue="species", x_vars=x_vars, y_vars=y_vars)
g.map_diag(sns.histplot, color=".3")
g.map_offdiag(sns.scatterplot)
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('penguis dataset, mass | bill l/d | fillper l', fontsize=16)
g.add_legend()

绘图风格, 颜色主题和绘图元素比例放缩

  • seaborn有更多绘图风格和颜色主题, 可以用于绘制不同样式的图.
"""common code"""
sns.set_style("style_name")  # 绘图风格
sns.set_palette("palette_name")  # 颜色主题
sns.set_context("context_scale")  # 绘图元素放缩比例

# check available palettes
sns.palettes.MPL_QUAL_PALS, sns.palettes.SEABORN_PALETTES

# show color palette
sns.color_palette("flare")

# show interpolated color palette
pal = sns.color_palette("flare", as_cmap=True)
pal_c = list(pal.colors)
sns.palplot(pal_c[::len(pal_c)//20])
  • set_style: darkgrid, whitegird, dark, white
  • palette_name:
    • ['tab10', 'tab20', 'tab20b', 'tab20c', 'Set1', 'Set2', 'Set3', 'Accent', 'Paired', 'Pastel1', 'Pastel2', 'Dark2']
    • ['deep', 'deep6', 'muted', 'muted6', 'pastel', 'pastel6', 'bright', 'bright6', 'dark', 'dark6', 'colorblind', 'colorblind6']
  • context_scale: paper, notebook, talk, poster
    • 图片所有内容物的大小, 逐个增大
Seaborn是一个基于Matplotlib的Python可视化库,它提供了一个高级接口,用于绘制具有吸引力的统计图形。Seaborn在大多数情况下可以更容易地制作出具有吸引力的图形,而Matplotlib则可以制作出更多特色的图形。可以将Seaborn视为Matplotlib的补充。\[1\] 关于Seaborn的案例应用,下面是一个使用Seaborn绘制统计图形的示例代码: ```python import numpy as np import seaborn as sns import matplotlib.pyplot as plt sns.set(palette="muted", color_codes=True) rs = np.random.RandomState(10) d = rs.normal(size=100) f, axes = plt.subplots(2, 2, figsize=(7, 7), sharex=True) plt.title('seaborn: statistical data visualization') sns.distplot(d, kde=False, color="b", ax=axes\[0, 0\]) sns.distplot(d, hist=False, rug=True, color="r", ax=axes\[0, 1\]) sns.distplot(d, hist=False, color="g", kde_kws={"shade": True}, ax=axes\[1, 0\]) sns.distplot(d, color="m", ax=axes\[1, 1\]) plt.show() ``` 这段代码使用Seaborn绘制了四个统计图形,包括直方图、核密度图、带有阴影的核密度图和带有阴影的直方图。\[2\] 关于Seaborn的更多详细攻略和使用方法,可以参考相关文章。\[3\] #### 引用[.reference_title] - *1* *2* *3* [Py之seabornseaborn库的简介、安装、使用方法之详细攻略](https://blog.csdn.net/qq_41185868/article/details/80217906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值