本文中的主要知识点:
seaborn
画风的使用- 怎么隐藏刻度线
- 多个子图怎么使用不同的风格
- 刻度轴上的数值大小和线条粗细设置
import seaborn as sns # seaborn是对matplotlib的基础上进行了封装
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
默认画风
代码语言:javascript复制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)
代码语言:javascript复制sinplot() # 默认画风
代码语言:javascript复制sns.set()
sinplot()
5种主题风格
darkgrid
whitegrid
dark
white
ticks
sns.set_style("whitegrid") # 风格常用
data = np.random.normal(size=(20, 6)) np.arange(6) / 2
sns.boxplot(data=data)
代码语言:javascript复制<matplotlib.axes._subplots.AxesSubplot at 0x19234fef048>
代码语言:javascript复制sns.set_style('dark') # 去掉默认的格子和刻度线
sinplot()
代码语言:javascript复制sns.set_style('white') # 背景变成白色
sinplot()
代码语言:javascript复制sns.set_style('ticks') # 横纵坐标轴加上刻度
sinplot()
despine参数使用
用于隐藏某个刻度轴
代码语言:javascript复制Signature:
sns.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).
代码语言:javascript复制sinplot()
sns.despine() # 只保留XY轴上的刻度
代码语言:javascript复制sns.violinplot(data)
sns.despine(offset=10) # 图形与刻度轴的距离
代码语言:javascript复制sns.violinplot(data)
sns.despine(offset=60)
代码语言:javascript复制sns.set_style("whitegrid")
sns.boxplot(data=data, palette="deep")
sns.despine(left=True) # 隐藏左边的轴
代码语言:javascript复制sns.set_style("whitegrid")
sns.boxplot(data=data, palette="deep")
sns.despine(bottom=True)
子图相关
代码语言:javascript复制# 每个子图的风格不同
with sns.axes_style("darkgrid"): # with语句中是指定的风格
plt.subplot(211)
sinplot() # 调用函数
plt.subplot(212) # 不在with里面是另一种风格
sinplot(-1)
布局设置
代码语言:javascript复制sns.set()
代码语言:javascript复制sns.set_context("paper")
plt.figure(figsize=(8,6))
sinplot()
代码语言:javascript复制sns.set_context("talk") # 线更粗 刻度值更大了点
plt.figure(figsize=(8,6))
sinplot()
代码语言:javascript复制sns.set_context("poster") # 线更粗 刻度值更大了点
plt.figure(figsize=(8,6))
sinplot()
代码语言:javascript复制sns.set_context("notebook",
font_scale=1.5, # 刻度值大小
rc={"lines.linewidth":2.5} # 线条粗细
)
sinplot()
代码语言:javascript复制sns.set_context("notebook",
font_scale=2.5, # 刻度值大小
rc={"lines.linewidth":4} # 线条粗细
)
sinplot()