Seaborn风格设置

官方网站:seaborn: statistical data visualization — seaborn 0.11.2 documentation (pydata.org)

Seaborn是基于matplotlib的python数据可视化库,提供更高层次的API封装,包括一些高级图表可视化等工具,用于绘制更美观和信息更丰富的统计图表。

导入模块:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

风格设置

全局风格设置

seaborn.set(
    context='notebook',
    style='darkgrid',
    palette='deep',
    font='sans-serif',
    font_scale=1,
    color_codes=True,
    rc=None,
)
Docstring:
Set aesthetic parameters in one step.

Each set of parameters can be set directly or temporarily, see the
referenced functions below for more information.

Parameters
----------
context : string or dict
    Plotting context parameters, see :func:`plotting_context`
style : string or dict
    Axes style parameters, see :func:`axes_style`
palette : string or sequence
    Color palette, see :func:`color_palette`
font : string
    Font family, see matplotlib font manager.
font_scale : float, optional
    Separate scaling factor to independently scale the size of the
    font elements.
color_codes : bool
    If ``True`` and ``palette`` is a seaborn palette, remap the shorthand
    color codes (e.g. "b", "g", "r", etc.) to the colors from this palette.
rc : dict or None
    Dictionary of rc parameter mappings to override the above.
# 创建正弦函数
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()

sns.set()     #设置seaborn默认风格,一旦设置就设置了全局的风格
sinplot()
plt.grid(linestyle = '--')     #设置网格线

局部风格设置

seaborn.set_style(style=None, rc=None)

Docstring:
Set the aesthetic style of the plots.

This affects things like the color of the axes, whether a grid is
enabled by default, and other aesthetic elements.

Parameters
----------
style : dict, None, or one of {darkgrid, whitegrid, dark, white, ticks}
    A dictionary of parameters or the name of a preconfigured set.
rc : dict, optional
    Parameter mappings to override the values in the preset seaborn
    style dictionaries. This only updates parameters that are
    considered part of the style definition.

Examples
--------
>>> set_style("whitegrid")

>>> set_style("ticks", {"xtick.major.size": 8, "ytick.major.size": 8})

See Also
--------
axes_style : return a dict of parameters or use in a ``with`` statement
             to temporarily set the style.
set_context : set parameters to scale plot elements
set_palette : set the default color palette for figures
#set_style()切换图表风格
#风格选择:"white","dark","whitegrid","darkgrid","ticks"

fig = plt.figure(figsize=(6, 6))

style = 'ticks'
ax1 = fig.add_subplot(2,1,1)
sns.set_style(style)
data = np.random.normal(size=(20,6)) + np.arange(6)/2
sns.boxplot(data=data)
plt.title('style-{0}'.format(style))

ax2 = fig.add_subplot(2,1,2)
sinplot()

设置图形坐标轴

seaborn.despine(
    fig=None,
    ax=None,
    top=True,
    right=True,
    left=False,
    bottom=False,
    offset=None,
    trim=False,
)
Docstring:
Remove the top and right spines from plot(s).

fig : matplotlib figure, optional
    Figure to despine all axes of, default uses current figure.
ax : matplotlib axes, optional
    Specific axes object to despine.
top, right, left, bottom : boolean, optional
    If True, remove that spine.
offset : int or dict, optional
    Absolute distance, in points, spines should be moved away
    from the axes (negative values move spines inward). A single value
    applies to all spines; a dict can be used to set offset values per
    side.
trim : bool, optional
    If True, limit spines to the smallest and largest major tick
    on each non-despined axis.
#创建图表
fig = plt.figure(figsize=(6,9))
plt.subplots_adjust(hspace=0.3)
sns.set_style('darkgrid')


ax1 = fig.add_subplot(3,1,1)
sinplot()
sns.despine()      #默认删除上和右坐标轴


ax2 = fig.add_subplot(3,1,2)
sns.violinplot(data=data)
sns.despine(offset=10, trim=True)      #offset: 与坐标轴之间的偏移;trim=True,将坐标轴限制在数据最大和最小值之间

ax3 = fig.add_subplot(3,1,3)
sns.boxplot(data=data, palette='deep')
sns.despine(left=False, right=True)   #隐藏右边坐标轴

设置子图风格

seaborn.axes_style(style=None, rc=None)
Docstring:
Return a parameter dict for the aesthetic style of the plots.

This affects things like the color of the axes, whether a grid is
enabled by default, and other aesthetic elements.

This function returns an object that can be used in a ``with`` statement
to temporarily change the style parameters.

Parameters
----------
style : dict, None, or one of {darkgrid, whitegrid, dark, white, ticks}
    A dictionary of parameters or the name of a preconfigured set.
rc : dict, optional
    Parameter mappings to override the values in the preset seaborn
    style dictionaries. This only updates parameters that are
    considered part of the style definition.
#axes_style()设置局部图表(子图)风格

#与with配合使用,实现局部代码区分
with sns.axes_style('darkgrid'):
    plt.subplot(211)
    sinplot()

#外部图表风格
sns.set_style('whitegrid')
plt.subplot(212)
sinplot()

设置图形显示尺度

seaborn.set_context(context=None, font_scale=1, rc=None)
Docstring:
Set the plotting context parameters.

This affects things like the size of the labels, lines, and other
elements of the plot, but not the overall style. The base context
is "notebook", and the other contexts are "paper", "talk", and "poster",
which are version of the notebook parameters scaled by .8, 1.3, and 1.6,
respectively.

Parameters
----------
context : dict, None, or one of {paper, notebook, talk, poster}
    A dictionary of parameters or the name of a preconfigured set.
font_scale : float, optional
    Separate scaling factor to independently scale the size of the
    font elements.
rc : dict, optional
    Parameter mappings to override the values in the preset seaborn
    context dictionaries. This only updates parameters that are
    considered part of the context definition.

Examples
--------
>>> set_context("paper")

>>> set_context("talk", font_scale=1.4)

>>> set_context("talk", rc={"lines.linewidth": 2})
#set_context()设置图形显示尺度
#尺度类型:"paper","notebook","talk","poster"

sns.set_context()      #默认为notebook
sinplot()

sns.set_context('paper')       #paper风格
sinplot()

sns.set_context('talk')        #talk风格
sinplot()

sns.set_context('poster')      #poster风格
sinplot()

posted @ 2022-01-06 12:39  溪奇的数据  阅读(408)  评论(0编辑  收藏  举报