matpltlib怎么给直方图加上拟合曲线?

  统计/机器学习 数据可视化 Python    浏览次数: 1191
2


上面的直方图里有一条红色的拟合的曲线。matpltlib怎么给直方图加上拟合曲线?

谢谢!


 

有故事的董同学   2017-12-17 10:44



   2个回答 
7

需要用到python的matplotlib包,如下:

# -*- coding:utf-8 -*-  
import numpy as np  
import matplotlib.mlab as mlab  
import matplotlib.pyplot as plt  
  
mu = 100  # 正态分布的均值  
sigma = 15  # 标准差  
x = mu + sigma * np.random.randn(10000)#在均值周围产生符合正态分布的x值  
  
num_bins = 50  
n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor='green', alpha=0.5)  
#直方图函数,x为x轴的值,normed=1表示为概率密度,即和为一,绿色方块,色深参数0.5.返回n个概率,直方块左边线的x值,及各个方块对象  
y = mlab.normpdf(bins, mu, sigma)#画一条逼近的曲线  
plt.plot(bins, y, 'r--')  
plt.xlabel('Smarts')  
plt.ylabel('Probability')  
plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')#中文标题 u'xxx'  
  
plt.subplots_adjust(left=0.15)#左边距  
plt.show()  
得到图形为:

博观   2017-12-18 14:52

谢谢大神! - 有故事的董同学   2017-12-29 13:56
3

用sns.displot是最简单,最方便的

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

sns.distplot(np.random.normal(0, 1, 1000), bins=30)
plt.show()


KingBug   2018-02-05 23:29



  相关主题

%matplotlib inline什么意思?   2回答

matplotlib怎样让grid网格线处于图像下层?   1回答

如何用python画饼图?   1回答

python里画出“热图”   3回答

plt.pie画饼图,怎么调节透明度alpha   1回答

用matplotlib.pyplot作图时,调整标题中文字的大小   1回答

python画散点图   1回答

怎么在matplotlib.pyplot的plot上加上文字?   1回答

matplotlib.pyplot画图怎么添加横轴,纵轴的名字?   1回答

用plt.hist画直方图,怎么返回每个bins的上下界和个数?   1回答

python直方图y轴显示占比,而不是绝对数值   1回答

matplotlib.pyplot环境下给曲线下方的面积涂色?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!