python基础-seaborn画图工具
seaborn-data 数据集官网:https://github.com/mwaskom/seaborn-data
Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。
代码
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
#定义随机数据函数
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)
#默认画风设置
sns.set()
#调用函数
sinplot()
plt.show()
#改变整体风格
sns.set_style("whitegrid")
#sns.set_style("dark")
#sns.set_style("white")
#sns.set_style("ticks")
#sns.despline()
#sns.despline(offset=100)
#sns.despline(left = True)
data = np.random.normal(size=(20,6))+np.arange(6)/2
sns.boxplot(data=data)
plt.show()
#指定位置域,画不同风格
with sns.axes_style("darkgrid"):
plt.subplot(211)
sinplot()
plt.subplot(212)
sinplot(-1)
plt.show()
sns.set()
sns.set_context("paper")
sns.set_context("talk")
sns.set_context("poster")
sns.set_context("notebook",font_scale=1.5,rc={"lines.linewidth" :2.5})
plt.figure(figsize=(8,6))
sinplot()
plt.show()
#调色版,有六个默认颜色主题
current_palette = sns.color_palette()
sns.palplot(current_palette)
plt.show()
#利用颜色空间调色,分成8个
sns.palplot(sns.color_palette("hls",8))
data = np.random.normal(size=(20,8))+np.arange(8)/2
sns.boxplot(data=data,palette =sns.color_palette("hls",8))
plt.show()
sns.palplot(sns.color_palette("Paired",8))
plt.show()
#透明度饱和度
#sns.palplot(sns.hls_palette(8,l=.7,s=.9))
#plt.show()
#使用xkcdd颜色来命名颜色,指定固定颜色
plt.plot([0,1],[0,1],sns.xkcd_rgb["pale red"],lw=3)
plt.plot([0,1],[0,2],sns.xkcd_rgb["medium green"],lw=3)
plt.plot([0,1],[0,3],sns.xkcd_rgb["denim blue"],lw=3)
plt.show()
#连续型画板,由深到浅
sns.palplot(sns.color_palette("Blues"))
plt.show()
#由浅到深
sns.palplot(sns.color_palette("BuGn_r"))
plt.show()
#线性变换
sns.palplot(sns.color_palette("cubehelix",8))
plt.show()
#指定不同颜色区间,进行线性变换
sns.palplot(sns.cubehelix_palette(8,start=5,rot=-.75))
plt.show()
sns.palplot(sns.light_palette("green"))
sns.palplot(sns.dark_palette("purple"))
sns.palplot(sns.light_palette("navy",reverse=True))
plt.show()
x,y = np.random.multivariate_normal ([0,0],[[1,.5],[-.5,1]],size=300).T
pal = sns.dark_palette("green",as_cmap=True)
sns.kdeplot(x,y,cmap=pal)
plt.show()
#使用颜色空间
sns.palplot(sns.light_palette((210,90,60),input = "husl"))
plt.show()
总结
Matplotlib是独立点菜,可能费时费心,但最后上桌的菜全是特别适合自己的;而Seaborn是点套餐,特别简单,一切都是配好的。