Seaborn学习笔记

Seaborn简介

Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。可以使得数据可视化更加的方便,美观。关于Seaborn的学习,推荐去官网,里边有详细的教程和示例。

Seaborn常用功能简介

直接使用Seaborn的美化功能

Seaborn直接提供了多种对matplotlib绘制的图形的美化功能,可以直接使用。

示例

使用matplotlib绘制图形,

#定义一个简单的绘图函数
def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

直接使用matplotlib绘图效果
直接使用matplotlib绘图

使用Seaborn提供的默认主题美化图形绘制

#只需要在绘制图形之前调用Seaborn的set()函数就可以直接使用其设定好的默认主题进行美化
sns.set()
sinplot()

使用Seaborn默认主题绘制效果
使用Seaborn默认主题绘制效果

Seaborn提供了多种风格的主题以供使用,可以通过sns.set_style()来直接使用。

提供的直接使用的主题:
darkgrid,whitegrid,dark,white,和ticks
默认为darkgrid

#使用Seaborn提供的主题绘制
sns.set_style("ticks")
sinplot()

使用提供的主题‘ticks’绘制效果
使用提供的主题绘制

我们可以使用sns.despine()函数来去除图片顶部和右侧的坐标轴线,使得图片更加美观

sns.set_style('ticks')
sinplot()
sns.despine()

去除顶部和右侧轴线效果
去除轴线

Seaborn还提供了更为友好的with用法,可以让我们在一张图片中采用多种的绘图风格,所有在with域中的绘制采用一种风格,而不在with域中的则可以使用另一种风格。

#在with中使用一种风格
with sns.axes_style("darkgrid"):
    plt.subplot(211)
    sinplot()
#不在with中的使用另一种风格,我们也可以使用多个with域来使用多种风格
plt.subplot(212)
sinplot(-1)

一张图中使用多种风格效果
一张图中使用多种风格效果

当然了,除了默认的提供的这些主题,我们也可以自己定义一些绘图的风格。通过向axes_style()和set_style()传递参数,可以定义自己的绘图主题。

#通过传入字典的方式来定制自己的绘图风格
sns.set_style("darkgrid", {"axes.facecolor": ".9"})
sinplot()

我们可以通过直接调用set_style()函数来查看全部可以使用的参数。

set_style()可用参数

{'axes.axisbelow': True,
 'axes.edgecolor': '.15',
 'axes.facecolor': 'white',
 'axes.grid': False,
 'axes.labelcolor': '.15',
 'axes.linewidth': 1.25,
 'figure.facecolor': 'white',
 'font.family': ['sans-serif'],
 'font.sans-serif': ['Arial',
  'DejaVu Sans',
  'Liberation Sans',
  'Bitstream Vera Sans',
  'sans-serif'],
 'grid.color': '.8',
 'grid.linestyle': '-',
 'image.cmap': 'rocket',
 'legend.frameon': False,
 'legend.numpoints': 1,
 'legend.scatterpoints': 1,
 'lines.solid_capstyle': 'round',
 'text.color': '.15',
 'xtick.color': '.15',
 'xtick.direction': 'out',
 'xtick.major.size': 6.0,
 'xtick.minor.size': 3.0,
 'ytick.color': '.15',
 'ytick.direction': 'out',
 'ytick.major.size': 6.0,
 'ytick.minor.size': 3.0}

我们还可以通过修改context参数来缩放图片中的元素。

Seaborn内置了多种context风格 : paper, notebook, talk, and poster
默认使用的是notebook

sns.set_context("poster")
sinplot()

设置context效果为poster
设置context效果

使用Seaborn的调色板

Seaborn提供了可以便于使用的调色板,可以方便的作用于数据的可视化。

示例

定性(或分类)调色板最适合用于区分不具有固有排序的离散数据块。

#可以使用color_palette()来调用生成一个色板
current_palette = sns.color_palette()
sns.palplot(current_palette)

分类色板

我们也可以根据需要来定制一个循环的色板

#使用hls的颜色空间,分割成8个颜色
sns.palplot(sns.color_palette("hls", 8))

分割颜色空间

Seaborn还提供了一个提取配对颜色的方法,可以获得两个颜色相近的颜色对

sns.palplot(sns.color_palette("Paired",10))

配对颜色效果

第二大类调色板被称为“顺序”。当数据范围从相对较低或不中断的值到相对较高或有趣的值时,这种颜色映射是适当的

#逐渐变深色板
sns.palplot(sns.color_palette("Blues"))
#若要是使得逐渐变浅,只需要在颜色后边加上‘_r’即可

#由深变浅色板
sns.palplot(sns.color_palette("Blues_r"))

渐变深色板

第三类调色板被称为“发散”。这些数据用于大数值低值和高值有趣的数据。数据中通常也有明确的中点。例如,如果从某个基准时间点绘制温度变化,最好使用分散的色彩映射来显示相对减少的区域和相对增加的区域。

用于区分的色板

sns.palplot(sns.color_palette("BrBG", 7))

效果图

我们也可以自定义这种发散的调色板

中心颜色为浅色调的色板

#sep控制中间浅色调的宽度
sns.palplot(sns.diverging_palette(10, 220, sep=90, n=7))

中心颜色为浅色调的色板

中心颜色为深色调的色板

sns.palplot(sns.diverging_palette(255, 133, l=60, n=7, center="dark"))

中心颜色为深色调的色板

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Seaborn是在matplotlib的基础上进行了更高级的封装,可以更方便地绘制各种精美和方便分析数据的图表。其中,直方图是Seaborn中的一种常见图表之一。直方图用来展示数据的分布情况,通过将数据划分为不同的分组(也称为bin),并统计每个分组中的数据数量来展示数据的分布情况。 在Seaborn中,通过histplot函数可以绘制直方图。可以使用不同的参数来控制直方图的外观和展示方式。例如,可以自定义直方图的颜色、线条样式和填充方式等。另外,还可以添加边界箱线图(boxplot)来同时展示数据的分布和离群值的情况。 此外,Seaborn还提供了边际图(marginal plot)的功能。边际图可以很好地展示两个数值变量之间的关系。通常中央图表显示两个变量的相关性,可以是散点图、hexbin图、2D直方图或2D密度图。边缘图通常在顶部和右侧,使用直方图或密度图显示两个变量的分布。可以使用kind参数来指定不同类型的边际图,如scatter(散点图)、reg(边界回归图)、resid(边界残差图)、kde(边界核密度图)或hex(边界六角图)。 下面是使用Seaborn绘制直方图的示例代码: import seaborn as sns sns.histplot(data=df, x="sepal_length") 这段代码将通过Seaborn绘制一个直方图,其中数据来自DataFrame df,x轴表示sepal_length列的数据。你可以根据需要进行相应的修改和定制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python-seaborn库数据可视化{直方图、散点图、箱线图、变量关系图、热力图、条形图}](https://blog.csdn.net/weixin_57501965/article/details/126625267)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [[seaborn] seaborn学习笔记3-直方图Histogramplot](https://blog.csdn.net/LuohenYJ/article/details/90704424)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值