什么是Seaborn
Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。
按照国际惯例,先装一波
pip3 install seaborn
什么报错了,报错是肯定的,seaborn包依赖于scipy包,所以要先装scipy,解决方法如下:
升级pip解决了这个问题
python3 -m pip install --upgrade pip
# 安装包并安装这个包所需的依赖包(sc)
pip3 install seaborn -U
# 或者
pip3 install scipy
pip3 install seaborn
seaborn API
Seaborn 要求原始数据的输入类型为 pandas 的 Dataframe 或 Numpy 数组,画图函数有以下几种形式:
sns.图名(x='X轴 列名', y='Y轴 列名', data=原始数据df对象)
sns.图名(x='X轴 列名', y='Y轴 列名', hue='分组绘图参数', data=原始数据df对象)
sns.图名(x=np.array, y=np.array[, ...])
- 直方图的绘制
barplot
将点估计和置信区间显示为矩形条。
条形图表示具有每个矩形的高度的数值变量的集中趋势的估计,并且使用误差条提供围绕该估计的不确定性的一些指示
API介绍
seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=<function mean>, ci=95, n_boot=1000, units=None, orient=None, color=None, palette=None, saturation=0.75, errcolor='.26', errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)
Example for barplot
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x = np.arange(8)
y = np.array([1,5,3,6,2,4,5,6])
df = pd.DataFrame({"x-axis": x,"y-axis": y})
sns.barplot("x-axis","y-axis",palette="RdBu_r",data=df)
plt.xticks(rotation=90)
plt.show()
横坐标为0-7的整数,纵坐标表示这八个整数分别所占的权重,调整 palette 参数可以美化显示风格
imageseaborn.barplot实战
1.数据集
通过爬虫爬取了猫眼上面,用户对电影《狄仁杰之四大天王》的影评,如下图所示,包括
(1.评论时间;(2.评论者的用户ID;(3.评论者所在地区;(4.评分;(5.评论内容
根据评分,我们来看一看,电影的评分的分布情况
image
2.代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
f = open('狄仁杰.txt',encoding='UTF-8')
data = pd.read_csv(f,sep=',',header=None,encoding='UTF-8',names=['date','nickname','city','rate','comment'])
#评分分析
rate = data['rate'].value_counts()
sns.set_style("darkgrid")
bar_plot = sns.barplot(x=(rate.index),y=(rate.values/sum(rate)),palette="muted")
plt.xticks(rotation=90)
plt.show()
通过pandas,读取出数据在 data中,评分在rate下面 ,data['rate'].value_counts(),统计出各分数的人数,如下图所示
image最后横坐标为rate.index(0.0,0.5,1.0,1.5....5.0),纵坐标为给出各分数的人数/总人数,这很容易理解,最后算出的就是,这个评分所占的比例。
3.分析结果
image看到超过40%的人给出了5.0的评分,超过85%的人给出了3.5以上的评分,至少说明这部电影在口碑方面上取得的成绩是比较好的.
小结
结合爬虫爬取下来的电影数据,根据评分来通过seaborn绘制出评分的发布直方图,只介绍了seaborn的一种方法,不要着急,stpe by stpe.事实上一头扎进文档里,我相信看过5种绘图方式,你就记不住了,方法学会了,之后,根据需求,查阅文档,现学现用就行了
网友评论