一、Seaborn介绍
Seaborn
是一个基于matplotlib的Python数据可视化库。它提供了一个高级界面,用于绘制有吸引力且信息丰富的统计图形;是一个用Python制作统计图形的库。建立在matplotlib之上,并pandas数据结构紧密集成。
二、Seaborn和matplotlib对比
首先我们导入所需要的模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
实例:
- 需求:画一个花瓣
(petal)
和花萼(sepal)
长度的散点图,并且点的颜色要区分鸢尾花的种类
实例:
iris = pd.read_csv(r'C:\Users\taoxiao\Desktop\project\o25mso\homework/iris.csv')
print('****************')
print(iris.Name.unique())#返回name这列唯一的值
print('****************')
color_map = dict(zip(iris.Name.unique(), ['blue','green','red']))
gp_data = iris.groupby('Name')#通过name分组
print(gp_data.groups)
运行结果:
实例:
-
matplotlib
和seaborn
绘画散点图
#matplotlib绘制散点图
for species, group in iris.groupby('Name'):
plt.scatter(group['PetalLength'], group['SepalLength'],
color=color_map[species],
alpha=0.3, edgecolor=None,
label=species)
plt.legend(frameon=True, title='Name')
plt.xlabel('petalLength')
plt.ylabel('sepalLength')
#seabron绘制散点图
sns.lmplot('PetalLength', 'SepalLength', iris, hue='Name', fit_reg=False)
运行结果:
seabron绘制
三、seaborn
实现柱状图和热力图
数据展示实例:
df = sns.load_dataset('flights')
print(df.head())
print('***************')
print(df.shape)
print('***************')
#做一个数据的转换处理
df = df.pivot(index='month', columns='year', values='passengers')
df
运行结果:
绘图实例:
#绘制热力图
sns.heatmap(df, annot=True, fmt='d')
df.plot()
运行结果:
seabron柱状图实例:
s = df.sum()
print(s.index)
print(s.values)
#绘制柱状图
sns.barplot(x=s.index, y=s.values
运行结果:
matplotlibz柱状图实例:s.plot(kind='bar')
四、seaborn实现直方图和密度图
- matplotlib直方图和密度图
s1 = Series(np.random.randn(1000))
#直方图
plt.hist(s1)
i运行结果
密度图
s1.plot(kind='kde')
运行结果
#直方图
sns.distplot(s1, bins=20, hist=True, kde=False, rug=True)
直方图
#密度图
sns.kdeplot(s1, shade=True, color='r')
密度图
四、Seaborn设置图形显示效果
- matplitlib绘图
实例:
x = np.linspace(0,14,100)
#定义一个函数绘两个图
def sinplot():
plt.plot(x, y1)
plt.plot(x, y2)
sinplot()
运行结果
- seabron绘制效果
import seaborn as sns
sinplot()
运行结果
- 设置绘图风格
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()
运行结果
实例:
style = ['darkgrid', 'dark', 'white','whitegrid', 'tricks']
sns.set_style(style[0], {'grid.color': 'red'})
sinplot()
sns.axes_style()
运行结果
sns.set()#设置绘图风格清空
sns.set_style('white')#设置背景为白色
sinplot()
运行结果
- plotting_context() and set_context()
context = ['paper', 'notebook', 'talk', 'poster']
sns.set_context(context[1], rc={'grid.linewidth': 3.0})
sinplot()
sns.set()#设置为默认
sns.plotting_context()#查看参数
运行结果
网友评论