ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

让图形变得精致:seaborn绘图基础

2021-01-19 22:01:13  阅读:308  来源: 互联网

标签:plt seaborn df1 matplotlib 绘图 sns 图形


1、seaborn的优点

  • 它简化了复杂数据集的表示;

  • 可以轻松构建复杂的可视化,简洁的控制matplotlib图形样式与几个内置主题;

  • seaborn不可以替代matplotlib,而是matplotlib的很好补充;

2、seaborn的官网

学习某个知识点,最好的东西就是照着官网的提示学习,因为官网里面的知识点,够完整、够全面。seaborn的官网链接:http://seaborn.pydata.org

图片

3、seaborn的作者介绍

图片

4、seaborn的缩写为什么是sns,而不是sbn?

sns的使用来自于一个内部笑话,与美剧The West Wing有关。这部剧里有一个人物,名叫Samual Norman Seaborn,首字母简写为sns,因此最终简写为sns。

5、seaborn与matplotlib的关系?

seaborn是matplotlib的更高级的封装。因此学习seaborn之前,首先要知道matplotlib的绘图原理。

我们知道,使用matplotlib绘图,需要调节大量的绘图参数,需要记忆的东西很多。而seaborn基于matplotlib做了更高级的封装,使得绘图更加容易,它不需要了解大量的底层参数,就可以绘制出很多比较精致的图形。不仅如此,seaborn还兼容numpy、pandas数据结构,在组织数据上起了很大作用,从而更大程度上的帮助我们完成数据可视化。

最关键:seaborn是matplotlib的更高级的封装。也就是说,对于matplotlib的那些调优参数设置,也都可以在使用seaborn绘制图形之后使用。
  

6、使用seaborn绘图的3种方式

  • plt.style.use(“seaborn”):只是说调用了seaborn的绘图样式,并不能真正体现seaborn绘图的好处。

  • sns.set():使用了这个方法后,所有之前写过的matplotlib中的参数都还原了。因此,像设置中文字体显示、设置负号的正常显示,都必须放在sns.set()这句代码之后。

  • 直接调用seaborn函数绘图:这种方式能真正体现seaborn绘图的优势,也是我们经常使用的绘图方式。(最常用)

1)plt.style.use(“seaborn”)

df = pd.read_excel("data.xlsx",sheet_name="数据源")
df1 = df.groupby("品牌").agg({"销售数量":np.sum})

# 使用matplotlib风格绘图
plt.bar(x=df1.index,height=df1["销售数量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python绘图\seaborn\picture\seaborn绘图方式_1",dpi=300)

# 使用seaborn风格绘图
plt.style.use("seaborn")
plt.bar(x=df1.index,height=df1["销售数量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python绘图\seaborn\picture\seaborn绘图方式_2",dpi=300)

结果如下:

图片
图片

2)sns.set()

这个方法里面有几个参数,但是在实际中,我们都使用默认值即可,因为默认参数绘图就已经很好看啦,并不需要我们特意去设置。

① 常用参数:sns.set(style=, context=, font_scale=)
style设置绘图的样式。
context一般使用默认样式即可,不需要我们自己设置。默认是context=“notebook”。
font_scale控制坐标轴的刻度,一般设置为font_scale=1.2即可。
② 演示如下

df = pd.read_excel("data.xlsx",sheet_name="数据源")
df1 = df.groupby("品牌").agg({"销售数量":np.sum})

# 使用matplotlib风格绘图
plt.bar(x=df1.index,height=df1["销售数量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python绘图\seaborn\picture\seaborn绘图方式_3",dpi=300)

# 使用seaborn风格绘图
sns.set()
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False

plt.bar(x=df1.index,height=df1["销售数量"],width=0.5,color="blue")
plt.savefig(r"G:\6Tipdm\2 python绘图\seaborn\picture\seaborn绘图方式_4",dpi=300)

结果如下:

图片
图片

3)直接调用seaborn函数绘图(最常用):seaborn绘图的优势体现

df = pd.read_excel("data.xlsx",sheet_name="数据源")

sns.set_style("dark")
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 注意:estimator表示对分组后的销售数量求和。默认是求均值。
sns.barplot(x="品牌",y="销售数量",data=df,color="steelblue",orient="v",estimator=sum)
plt.savefig(r"G:\6Tipdm\2 python绘图\seaborn\picture\seaborn绘图方式_5",dpi=300)

结果如下:

图片
注意:直接调用seaborn函数绘图的好处在这个代码中有很好的体现。可以看出,如果直接使用matplotlib中的代码绘图,需要先对数据集进行分组聚合,然后才能绘制最后的图形。【优势】:直接使用sns.barplot()函数绘图,barplot可以直接将 groupby 分组后的结果按照指定的汇总方式进行可视化展示,并不需要我们实现对数据进行处理。

欢迎扫码关注作者的CSDN:

图片

PS:灰常感谢黄同学的投稿,同时也欢迎关注了【可乐的数据分析之路】公众号的小伙伴们踊跃投稿哦~本文的赞赏及第二天的流量主都会给到原作者。


标签:plt,seaborn,df1,matplotlib,绘图,sns,图形
来源: https://blog.51cto.com/15064638/2598079

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有