首页 > 其他 > 详细

直方图的拟合曲线

时间:2019-07-14 16:21:49      阅读:148      评论:0      收藏:0      [点我收藏+]

给定一组连续值的数据,将它们分成若干小段,统计每个小段中数据的个数,并画出它们的直方图和拟合曲线.

法一:利用seaborn中的包可以快速实现,这里的拟合曲线默认不是正态曲线,而是更好的拟合了数据的分布情况,但通过参数fit可以设置拟合正态曲线.

技术分享图片
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set(style="ticks")
from sklearn import datasets
from scipy.stats import norm

iris = datasets.load_iris()   # 载入鸢尾花数据集
x = iris.data[:,0]            # 取narry中的第一列
sns.set_palette("hls")        #设置所有图的颜色,使用hls色彩空间
# sns.distplot( x,color="r",bins=100,kde=True,)# hist=False)
# hist和kde参数默认都是True,分别用于控制是否展现直方图和拟合的曲线图
# fit可用于指定拟合正态分布,要导入from scipy.stats import norm
sns.distplot( x,bins=30, hist=True,kde_kws={color: green, lw:3, label:x}, hist_kws={color: red, alpha: 0.2})
plt.show()
View Code

官网教程:http://seaborn.pydata.org/generated/seaborn.distplot.html?highlight=distplot#seaborn.distplot

参考:https://www.jianshu.com/p/65395b00adbc

法二:利用round()函数保留小数点后一位或两位,再groupby作图,但效果远不如第一种.

技术分享图片
f_train[VAR00007] = f_train[VAR00007].apply( lambda x: round(x, 1))
f_train = f_train.groupby([VAR00007])[VAR00007].agg([count]).reset_index()
f_train.sort_values([VAR00007], )
ydata = f_train[VAR00007].tolist()
x = f_train[count].tolist()
ydata.sort(reverse=False)
plt.scatter( ydata, x)
plt.show()
View Code

 

直方图的拟合曲线

原文:https://www.cnblogs.com/xxswkl/p/11184267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!