这篇文章主要是单变量分析时最常用的几种图的绘制方法,也就是散点图、直方图以及其复合图
日常是必须的包和基本设置import numpy as np
import pandas as pd
from scipy import stats, integrate
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "distributions")))
生成高斯分布并绘图
使用numpy的random包很容易生成特定分布的随机数,这里我们生成高斯分布"""
numpy.random.normal(loc=0.0, scale=1.0, size=None)
loc:均值
scale:标准差
"""
x = np.random.normal(size=100)
sns.distplot(x,kde=False)
#会根据数据自动确定轴的范围
#bins:指定数据切分块数
sns.distplot(x, bins=20, kde=False)
数据分布情况
曲线拟合x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)#曲线拟合
根据均值和协方差生成数据mean, cov = [0, 1], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
df = pd.DataFrame(data, columns=["x", "y"])
散点图的绘制
观察两个变量之间的分布关系最好使用散点图,使用Seaborn还可以很轻松的在散点图周围生成单变量直方图,从而更加形象与直观#同时绘制散点图和单变量直方图
sns.jointplot(x="x", y="y", data=df);
密度图的绘制#对于大量数据使用"hex"来看出数据密度分布情况
x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("white"):
sns.jointplot(x=x, y=y, kind="hex", color="k")
更加复杂的复合图像#使用内置数据集,利用pairplot将两两特征的关系图绘制出来
iris = sns.load_dataset("iris")
sns.pairplot(iris)