赞
踩
画频次直方图需要先用numpy生成服从正态分布的数据,然后用matplotlib画图。其中seaborn也是python的一个数据可视化的库。用seaborn画图比matplotlib更方便和好看点,其底层也是matplotlib.
- import numpy as np
- from numpy.linalg import cholesky
- import matplotlib.pyplot as plt
- import seaborn as sns
- sns.set()
- data=np.random.normal(0,1,1000)#生成一组期望值=0,标准差=1的标准正太分布数组,数组中有1000个元素
- plt.hist(data,bins=10,alpha=0.5)
- data2=np.random.normal(0,1,1000)#生成第二组数据
- plt.hist(data2,bins=10,alpha=0.5)
还可以用np.random.randn生成正态分布数据,sigma是标准差,mu是期望值
data= sigma* np.random.randn(1000) + mu
- sns.kdeplot(data,shade=True)
- sns.kdeplot(data2,shade=True)
- sns.distplot(data)
- sns.distplot(data2)
当输入的数据是二维时,sns.kdeplot就可绘制一个二维的数据可视化图。
- data0=pd.DataFrame(np.array([data,data2]).T,columns=['x','y'])#将data,data2封装成DataFrame的x,y列,方便后面进行联合分布。
- sns.kdeplot(data0)
绘制两个变量的联合分布与单变量的独立分布。
- with sns.axes_style('white'):#使用白色背景
- sns.jointplot('x','y',data0,kind='kde')
修改jointplot的参数,用六边形块代替频次直方图
同时绘制了相对应的散点图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。