续上两篇:
👉Python seaborn美化篇-比例尺度context
👉Python seaborn超级细节篇-使用palette
本文分享Python seaborn中通过风格style美化图形。
风格(style),用于设置the general style of the plots,例如,图中网格线是否开启、颜色、线宽等。
一张图的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中包含图形的样式和颜色等属性。
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-
每类图表包含详细代码+详细代码注释,多达8000行代码,例如,
👇(收费、务必备注:169)
✅解锁获取6大权限: