上面的直方图里有一条红色的拟合的曲线。matpltlib怎么给直方图加上拟合曲线?
谢谢!
2个回答
需要用到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()
得到图形为:
SofaSofa数据科学社区DS面试题库 DS面经
谢谢大神!
-
有故事的董同学
2017-12-29 13:56
用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()