https://seaborn.pydata.org/tutorial/aesthetics.html
控制图的美感
%matplotlib inline
import numpy as np
np.random.seed(sum(map(ord, "aesthetics")))
import matplotlib as mpl
import matplotlib.pyplot as plt
# 解决坐标轴刻度负号乱码
plt.rcParams['axes.unicode_minus'] = False
import seaborn as sns
# 解决中文乱码问题
sns.set_style('whitegrid',{'font.sans-serif':['simhei','Arial']})
[i for i in map(ord, "aesthetics")]
[97, 101, 115, 116, 104, 101, 116, 105, 99, 115]
# 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默认设置的样子
sinplot()
[外链图片转存失败(img-aQLe7Di9-1562742801241)(output_6_0.png)]
Seaborn默认的画图样式
# 要切换到seaborn默认的画图样式,只需调用sns.set()函数即可。
sns.set()
sinplot()
[外链图片转存失败(img-3Iy4hJfc-1562742801242)(output_8_0.png)]
sns.set(rc={"figure.figsize": (12, 4)}) # 调整图形大小, 长12,高4;
sinplot()
[外链图片转存失败(img-HiCsBulB-1562742801242)(output_9_0.png)]
Seaborn的画图样式
sns.set_style("darkgrid")
# {darkgrid, whitegrid, dark, white, ticks}
sinplot()
[外链图片转存失败(img-Bza0qXWv-1562742801243)(output_11_0.png)]
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)
plt.show()
[外链图片转存失败(img-3JQqkSPl-1562742801243)(output_12_0.png)]
sns.set_style("dark")
sinplot()
[外链图片转存失败(img-RJOHlnOS-1562742801243)(output_13_0.png)]
sns.set_style("darkgrid")
sinplot()
[外链图片转存失败(img-yXRMn0Tp-1562742801244)(output_14_0.png)]
sns.set_style("white")
sinplot()
[外链图片转存失败(img-Wr14r3BQ-1562742801244)(output_15_0.png)]
sns.set_style("ticks")
sinplot()
[外链图片转存失败(img-ENdWoE1Z-1562742801244)(output_16_0.png)]
sinplot()
# removing the top and right axes spines for "white" and "ticks" styles
sns.despine() # 去掉“white”和“ticks”的样式下顶部和右轴的边框线
[外链图片转存失败(img-1XYHcqaD-1562742801244)(output_17_0.png)]
# sns.despine?
# sns.despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False)
f, ax = plt.subplots()
sns.violinplot(data=data)
sns.despine(offset=10, trim=True);
# sns.despine(offset=10, trim=False);
# sns.despine(offset=30, trim=True);
# offset,将边线从坐标轴移开一定距离
# trim,如果为True,将边线限制在最小和最大的主tick上
[外链图片转存失败(img-7VhKcePN-1562742801245)(output_19_0.png)]
sns.set_style("whitegrid")
sns.boxplot(data=data, palette="deep")
sns.despine(left=True)
[外链图片转存失败(img-vAWMCWOD-1562742801245)(output_20_0.png)]
sns.set_style("whitegrid")
sns.boxplot(data=data, palette="deep")
sns.despine(bottom=True)
[外链图片转存失败(img-MWe2dx40-1562742801245)(output_21_0.png)]
暂时设定图形式
with sns.axes_style("darkgrid"):
plt.subplot(211)
sinplot() # 以“darkgrid”样式画图
plt.subplot(212)
sinplot(-1) # 以默认样式画图
[外链图片转存失败(img-tFIkRG8Y-1562742801246)(output_23_0.png)]
Seaborn 样式的主要参数
sns.axes_style()
{'axes.axisbelow': True,
'axes.edgecolor': '.8',
'axes.facecolor': 'white',
'axes.grid': True,
'axes.labelcolor': '.15',
'axes.linewidth': 1.0,
'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': 0.0,
'xtick.minor.size': 0.0,
'ytick.color': '.15',
'ytick.direction': 'out',
'ytick.major.size': 0.0,
'ytick.minor.size': 0.0}
sns.set_style("darkgrid", {"axes.facecolor": ".9"})
sinplot()
[外链图片转存失败(img-kZ3HxDQZ-1562742801246)(output_26_0.png)]
sns.set_style("darkgrid", {"axes.facecolor": ".7"})
sinplot()
[外链图片转存失败(img-n75YAOGx-1562742801246)(output_27_0.png)]
绘图上下文参数
# 通过调用set()重置缺省参数
sns.set()
# sns.set_context?
# "notebook", "paper", "talk", and "poster"
sns.set_context("paper")
sinplot()
[外链图片转存失败(img-XLFSnqKW-1562742801246)(output_31_0.png)]
sns.set_context("talk")
sinplot()
[外链图片转存失败(img-62c2PcjW-1562742801247)(output_32_0.png)]
sns.set_context("poster")
sinplot()
[外链图片转存失败(img-AZ87MRqJ-1562742801247)(output_33_0.png)]
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
sinplot()
[外链图片转存失败(img-u4vUEA7h-1562742801247)(output_34_0.png)]