seaborn基本操作——风格设置(以绘制正弦函数为例)

本文通过绘制正弦函数图例介绍了Seaborn的基本使用方法,并对比了其与Matplotlib的不同之处。同时展示了Seaborn提供的五种不同风格:darkgrid、whitegrid、dark、white和ticks,并通过实例演示了如何在图表中应用这些风格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在学习了matplotlib之后便紧跟着开始seaborn的学习,seaborn是对matplotlib的进一步封装,令我们的绘图操作进一步简化,使用seaborn我们便可以简单的绘制出风格迥异的图例,是我们数据展示的利器。 
  我们从seaborn的风格转换开始入门学习,以绘制正弦函数为例。
  首先在正常的matplotlib中我们绘制一组正弦函数的曲线,代码如下:
  

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline

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)

sinplot()

执行这段代码后,会出现如下结果:
这里写图片描述

这是matplotlib默认风格下的绘制结果。
因为我是在jupyter notebook下进行的操作,所以是一个分片一个分片进行的操作。之后我们引入seaborn包并对风格进行设置,看看结果。

import seaborn as sns
sns.set()
sinplot()

结果如下:
这里写图片描述

执行了set()函数,我们引入了seaborn的默认风格,可以看到与matplotlib还是有一定区别的。
目前seaborn中有五种风格,如下:
- darkgrid
- whitegrid
- dark
- white
- ticks
接下来我们使用whitegrid风格绘制一个箱图,数据是一组利用numpy构造的标准正态分布。代码如下:

sns.set_style('whitegrid')
data = np.random.normal(size=(20, 6)) + np.arange(6)/2
sns.boxplot(data)

这里写图片描述
结果如图。可以看到背景是一种白色的,选择风格为white的绘制的正弦结果如下:

sns.set_style('white')
sinplot()

这里写图片描述

我们还可以利用with语句对子图的风格进行修改,代码:

with sns.axes_style("darkgrid"):
    plt.subplot(211)
    sinplot()
plt.subplot(212)
sinplot(-1)

做两个子图,一个用darkgrid一个用whitegrid。效果如图:
这里写图片描述

我们还可以再利用set_context()函数对整体格子大小、字体、线宽,进行设置。

sns.set_context('talk', font_scale=1, rc={'lines.linewidth':3.5})
plt.figure(figsize=(20, 6))
sinplot()

效果如图:
这里写图片描述

### 如何使用Python绘制二维图像 Python 提供了多种强大的工具来实现二维图形的绘制,其中最常用的两个库是 `matplotlib` 和 `seaborn`。以下是关于这两个库的具体介绍以及它们的应用方法。 #### Matplotlib 库简介及其应用 `Matplotlib` 是一个广泛使用的 Python 可视化库,能够创建静态、动态和交互式的可视化图表。通过其核心模块 `pyplot`,可以轻松生成各种类型的二维图形,如折线图、散点图、柱状图等[^2]。 下面展示一段代码,演示如何利用 `matplotlib` 绘制一条正弦曲线: ```python import matplotlib.pyplot as plt import numpy as np # 创建数据集 x = np.linspace(0, 10, 100) y = np.sin(x) # 初始化画布并绘制线条 plt.figure() plt.plot(x, y, '-') # 添加标题与坐标轴标签 plt.title("Sine Wave Example") plt.xlabel("Angle (radians)") plt.ylabel("sin(x)") # 展现最终结果 plt.show() ``` 此脚本定义了一组均匀分布的角度值作为输入变量 \( x \),并通过 NumPy 计算对应的正弦函数输出 \( y \)[^2]。随后调用了 `plot()` 方法完成实际绘图操作,并设置了必要的描述信息以便于理解所呈现的内容。 #### Seaborn 库概述与其功能扩展 除了基础版面设计外,如果追求更加精美直观的效果,则推荐尝试基于 `matplotlib` 构建而成的高层次封装——`seaborn`。该框架不仅继承了前者的核心特性,还额外引入了许多预设样式主题及便捷接口支持快速构建复杂统计型图表[^4]。 举来说,在处理分类数据分析场景下经常需要用到箱形图(Box Plot),借助 seaborn 实现起来非常简便高效: ```python import seaborn as sns import pandas as pd import matplotlib.pyplot as plt # 假定存在如下形式的数据框对象 df df = pd.DataFrame({ 'Category': ['A', 'B', 'C'] * 3, 'Values': [np.random.randn() for _ in range(9)] }) # 调用 boxplot 函数指定分组依据字段名即可自动生成对应布局结构 sns.boxplot(x='Category', y='Values', data=df) # 配合 matploblib 进一步完善整体外观表现力 plt.title('Distribution Across Categories') plt.grid(True) plt.show() ``` 上述实中先模拟构造了一个包含类别属性的小规模样本集合,再分别传入至 `boxplot` 参数列表里指示需按哪一维度划分区域范围;最后同样依靠常规手段补充附加装饰细节部分提升可读性水平[^3]。 综上所述,无论是简单需求还是高阶定制场合,选用合适的工具组合总能有效达成预期目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangbowj123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值