我在CSV文件中有数据。我正在尝试使用matplotlib绘制直方图。 这是我正在尝试的代码。
data.hist(bins=10)
plt.ylabel('Frequency')
plt.xlabel('Data')
plt.show()
这是我得到的情节。 现在使用相同的代码,我需要创建一个标准化的直方图,以显示数据的概率分布。但是现在,在y轴上,您无需绘制掉落在每个bin中的数据点的数量,而是绘制该数据bin中的数据点的数量除以数据点的总数。
我应该怎么做?
答案 0 :(得分:1)
Pandas' histogram向基础pyplot.hist()
添加了一些功能。许多参数都通过。其中之一是density=
。
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
data = pd.DataFrame(np.random.uniform(258.1, 262.3, 20))
data.hist(bins=10, density=True)
plt.ylabel('Density')
plt.xlabel('Data')
plt.show()
seaborn的一个相关图书馆有一个命令来创建density histogram和kde curve,作为概率分布的近似值。
import seaborn as sns
sns.distplot(data, bins=10)