画图第一步:根据情况import模块宝宝:import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
画图第二步:召唤我们的表格:自己取的名子(比如da) = pd.read_csv("表格名字.csv")
画图第三步(optional):看看表格的基本情况:自己取的名子.describe( )
插播一则消息:
如果要对我们的表格内容进行重命名的话怎么做呢,比如有一个表格,他的“婚姻状态”那一栏下面的数字是1,2,3,4,5,77,99,但其实它是代表着以下这些不同的类别:
那我们可以重新创建一行,为这些数字类别换个容易看的名字(用字典的形式),也方便我们画图。
代码:da["新列名"] = da.旧列名.replace({1: "married", 2: "widowed", 3: "divorced", 4: "separated", 5: "never married", 6:"living with partner",77: "Refused", 99: "Don't know"})
另外,如果我们要对表格里的内容进行统计,我们用到的咒语是:print(da["那一列的名字"].value_counts())
#记住,这里的value_counts() 是有括号,有s的。
画图第四步:写出我们的画图咒语
画图咒语其实有很多,displot(), kdeplot()等等,我们这里介绍基础的histogram和boxplot怎么画
# 画一个直方图
#在seaborn中最简便查看单元分布的函数是distplot().该函数默认绘制直方图并拟合内核密度估计。通过调整参数可以分别绘制直方图,拟合内核密度图,地毯图等。
#当绘制直方图时,你需要调整的参数是bin的数目(组数)。displot()会默认给出一个它认为比较好的组数,但是尝试不同的组数可能会揭示出数据不同的特征。sns.distplot (自己取的名子["你要画的那一列的名字"], kde = False,bin= 组数).set_title("自己想一个直方图的名字")
plt.show()
如果要画两列在一起:sns.distplot(自己取的名子["你要画的那一列的名字"], kde = False)
sns.distplot(自己取的名子["你要画的另一列的名字"], kde = False).set_title("自己想一个直方图的名字,比如Histogram of Both 列")
plt.show()
boxplot咒语:sns.boxplot(自己取的名子["你要画的列的名字"]).set_title("自己想一个箱型图的名字")
plt.show()
如果要画两列在一起:sns.boxplot(自己取的名子["你要画的列的名字"])
sns.boxplot(自己取的名子["你要画的另一列的名字"]).set_title("自己想一个箱型图的名字,比如Box plot of x x x")
plt.show()
举个栗子
以上都是单个变量的,那如何绘制才能同时显示多列呢sns.boxplot(data = da.loc[:,["变量1","变量2"]])
栗子:
那如果要绘制一个变量影响另一个变量的表呢?sns.boxplot(x = 自己取的名字["变量1"] , y = 自己取的名字["变量2"])
plt.show()
栗子:
如果要让一次绘制多个图表(以网格形式显示),那我们就要用到神奇的facetgrid接口
基本工作流程是FacetGrid使用数据集和用于构造网格的变量初始化对象。然后,调用FacetGrid.map()
plt.hist的意思是,plot histogramsns.FacetGrid(自己取的名字, row = "要分类的列名 比如 Gender").map(plt.hist, "你要画的列的名字")
举个栗子: