第8天 | 16天搞定Python数据分析,Seaborn主
在这个看颜值的时代,matplotlib长得太一般,很难吸异性暗送秋波的眼光。为此,Seaborn对其进行了变装,修改了默认的颜色方案和绘图类型,提高了可读性和美观度。
赏心悦目的图形不但能让数据探索中一些重要的细节更容易被挖掘,也能更有利于在与异性交流分析,并在此过程中,吸引她或他的注意力,让其更容易记住你的美。
说的好不如做的好,按照国际惯例,先用pip3 install scipy安装Seaborn依赖库,再运行pip3 install seaborn命名安装其真身。
8.1 美?
在没见过Seaborn对性别数据进行统计分析之前,我见到的大多数是这样的。简单是简单,颜值也还可以,如果没见过Seaborn的统计图,我以为这辈子见到的就这样了(这里有点浮夸了)。
用Seaborn实现分类统计分析,原来还可以这么美,关键是代码也不多,好了,废话不多说,上性别统计的代码。
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 指定画布大小,默认为600*480
fig, axes = plt.subplots(figsize=(9, 6))
sns.set()
tips = pd.read_csv("tips.csv")
sns.swarmplot(x="day", y="total_bill", hue="sex", data=tips)
# 保存图片
fig.savefig("test.png")
输出结果
8.2 几步?
不单单是Seaborn,其他数据分析库也一样,我培训同事时,都是用我原创的4步分析法,在这,我就大大方方的分享给你吧。希望你也大大方方地转发分享出去。
数据分析的4个步骤,分别是:选择主题(sns.set),载入数据(read_csv),定图连数,输出结果(test.png)。能理解么?不能的话,一会儿就背诵代码吧。
有关载入数据和输出结果,之前学过了,这里就不再赘述了,主题在这次讲,定图连数下次再说。用代码验证步骤之后,下节就进入主题。
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 指定画布大小,默认为600*480
fig, axes = plt.subplots(figsize=(9, 6))
# 1. 选择主题
sns.set()
# 2. 载入数据
tips = pd.read_csv("tips.csv")
# 3. 定图连数
sns.violinplot(x="day", y="total_bill", data=tips, split=True)
# 4. 输出结果
fig.savefig("test.png")
输出结果
8.3 主题
程序员的核心主题,是编程和找异性朋友,软件的核心主题是风格、颜色、字体。颜色还是用默认的好,毕竟你不是读美术专业的,当然,我也不是。嘎嘎嘎~
1. 风格
Seaborn内置的风格有darkgrid(默认风格)、whitegrid、dark、white和ticks五种,由set、set_style或axes_style方法进行设置
set:通用设置接口;set_style:风格专用设置接口,设置后全局风格随之改变;axes_style,设置当前图(axes级)的风格,返回设置后的风格系列参数。5种风格,我只输出其中的两种,另外的你自己体验。
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
def sinplot(flip=1):
x = np.linspace(10, 20, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * 0.6) * (6 - i) * flip)
# 选择风格darkgrid、whitegrid、dark、white和ticks五选1
sns.set(style="darkgrid")
# 调用这个函数
sinplot()
plt.show()
指定为whitegrid时的输出结果
指定为dark时的输出结果
2. 字体
seaborn库中有4种环境可以进行设置,分别是notebook(默认环境)、paper、talk和poster,因为设置之后,受影响较大的是字体,所有你应该重点关心字体内容。设置方法,分别为:
set:通用设置接口;set_context:环境设置专用接口,设置后全局绘图环境随之改变;plotting_context:设置当前图(axes级)的绘图环境,同时返回设置后的环境系列参数。
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 指定画布大小,默认为600*480
fig, axes = plt.subplots(figsize=(9, 6))
# 1. 选择主题(风格和字体)
sns.set_style("dark")
sns.set_context("talk", font_scale=2.0)
# 2. 载入数据
tips = pd.read_csv("tips.csv")
# 3. 定图连数(小提琴和树形混合图)
sns.violinplot(x="day", y="total_bill", data=tips, inner=None)
sns.swarmplot(x="day", y="total_bill", data=tips, color="w", alpha=0.6)
# 4. 输出结果
fig.savefig("test.png")
输出结果
图形中要用到数据,自己去https://github.com/mwaskom/seaborn-data进行下载。
好了,有关Seaborn主题的内容,老陈讲完了,如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。分享Python,前端(小程序)、App和嵌入式方面的干货。关注我,没错的。