经营
让图形变得精致:seaborn绘图基础一朝选在君王侧
2024-02-27 18:38  浏览:34

本文来自读者投稿,作者:黄同学
学习Python中用seaborn绘图的技巧

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:6Tipdm2python绘图seabornpictureseaborn绘图方式_1",dpi=300)

#使用seaborn风格绘图
plt.style.use("seaborn")
plt.bar(x=df1.index,height=df1["销售数量"],width=0.5,color="blue")
plt.savefig(r"G:6Tipdm2python绘图seabornpictureseaborn绘图方式_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:6Tipdm2python绘图seabornpictureseaborn绘图方式_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:6Tipdm2python绘图seabornpictureseaborn绘图方式_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:6Tipdm2python绘图seabornpictureseaborn绘图方式_5",dpi=300)

结果如下:


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

欢迎扫码关注作者的CSDN:

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


猜你喜欢:

Python数据结构:神奇的序列

你真的了解参数估计和假设检验吗?

高手都是怎样用图表的:用图表说话

@ 号主:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@ 加微信(data_cola)备注:进群,拉你进可乐的数据分析交流群,数据分析知识总结,不定期行业经验分享


发表评论
0评