pythonic生物人

Python seaborn美化篇-风格style

续上两篇:

👉 Python seaborn美化篇-比例尺度context 👉 Python seaborn超级细节篇-使用palette

本文分享Python seaborn中通过风格style美化图形。

风格(style),用于设置the general style of the plots ,例如,图中网格线是否开启、颜色、线宽等。

5.2 style设置图形通用样式

5.2.1 axes_style查看style内容

一张图的style包含的内容可通过axes_style()查看,

sns.axes_style()
{
    'axes.facecolor': '#EAEAF2',                # 坐标轴背景颜色
    'axes.edgecolor': 'white',                  # 坐标轴边框颜色
    'axes.grid': True,                          # 是否显示网格线
    'axes.axisbelow': True,                     # 网格线是否在图形下方
    'axes.labelcolor': '.15',                   # 坐标轴标签颜色
    'figure.facecolor': 'white',                # 图形背景颜色
    'grid.color': 'white',                      # 网格线颜色
    'grid.linestyle': '-',                      # 网格线样式
    'text.color': '.15',                        # 文本颜色
    'xtick.color': '.15',                       # x轴刻度颜色
    'ytick.color': '.15',                       # y轴刻度颜色
    'xtick.direction': 'out',                  # x轴刻度线方向
    'ytick.direction': 'out',                  # y轴刻度线方向
    'lines.solid_capstyle': 'round',           # 线条末端样式
    'patch.edgecolor': 'w',                    # 图形patch边框颜色
    'patch.force_edgecolor': True,             # 强制指定图形patch边框颜色
    'image.cmap': 'rocket',                    # 图像的色彩映射
    'font.family': ['sans-serif'],             # 字体家族
    'font.sans-serif': ['Arial',               # 无衬线字体
                        'DejaVu Sans',
                        'Liberation Sans',
                        'Bitstream Vera Sans',
                        'sans-serif'],
    'xtick.bottom': False,                     # x轴刻度是否显示在底部
    'xtick.top': False,                        # x轴刻度是否显示在顶部
    'ytick.left': False,                       # y轴刻度是否显示在左侧
    'ytick.right': False,                      # y轴刻度是否显示在右侧
    'axes.spines.left': True,                  # 左侧坐标轴边框是否显示
    'axes.spines.bottom': True,                # 底部坐标轴边框是否显示
    'axes.spines.right': True,                 # 右侧坐标轴边框是否显示
    'axes.spines.top': True                    # 顶部坐标轴边框是否显示
}

从以上可知,style中包含图形的样式和颜色等属性。

5.2.2 set_style()设置style内容

set_style()可设置style,seanborn内置了五套style设置,分别为darkgrid, whitegrid, dark, white, ticks,下面展示一下效果,

import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(12, 8))
sns.set_theme()
styles = ['darkgrid', 'whitegrid', 'dark', 'white', 'ticks']
for i, style in enumerate(styles):
    sns.set_style(style)  #设置style
    plt.subplot(2, 3, i + 1)
    sns.lineplot(x=[1, 2, 3, 4], y=[3, 2, 5, 1], color="#b1283a")
    plt.title(f"style: \"{style}\"", color="#006a8e")

plt.tight_layout()
plt.show()

上图可清晰的展示随着style变化,图形中背景色、网格线等属性的变化。在使用某款已经内置的style方案的同时,还可以通过rc独立设置某个参数,

# rc独立设置某个参数
import seaborn as sns
import matplotlib.pyplot as plt

# rc设置网格线的颜色为绿色
sns.set_style('whitegrid', rc={'grid.color': '#6ccea3'})  
sns.lineplot(x=[1, 2, 3, 4], y=[3, 2, 5, 1], color="#b1283a")
plt.title('set_style with \"rc\"', color="#006a8e")

plt.show()
-END-
节选自 原创Python可视化教程(基于py可视化利器seaborn): 530张图形+8000行代码+详细代码注释+后续免费更新+学习交流群 ,部分目录, 加入学习要趁早,随着加入学习的小伙伴越多,维护成本越来越大,月底将对价格适当调整, 优惠截止于7月31日24:00。

每类图表包含详细代码+详细代码注释,多达8000行代码,例如,

如何加入学习?

👇 ( 收费 、务必 备注:169 )

✅解锁获取 6大权限:
  • 代码(复制即可运行)
  • 在线教程文档(方便后续更新)
  • 依赖数据(免费下载)
  • 微信交流群
  • 后续更新
  • 交流群 定期包邮送最新统计、编程、AI类书籍