在python中形成直方图

时间:2014-01-22 20:41:08

标签: python matplotlib plot data-analysis

假设我想在python中的同一窗口上绘制2个直方图子图,一个在下一个下面。这些直方图中的数据将从包含具有属性A和B的表的文件中读取。

在同一个窗口中,我需要A的图表与每个A的数量以及B与每个B的数量的关系图 - 直接在A的图表下方。所以假设属性是身高和体重,那么我们有一个高度和人数的图表,高度和低于它的重量和人数的单独图表。

import numpy as np; import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
frame = pd.read_csv('data.data', header=None)
subplot.hist(frame['A'], frame['A.count()'])
subplot.hist(frame['B'], frame['B.count()'])

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

你可以这样做:

import numpy as np
import numpy.random
import pandas as pd
import matplotlib.pyplot as plt

#df = pd.read_csv('data.data', header=None)
df = pd.DataFrame({'A': numpy.random.random_integers(0,10,30),
                   'B': numpy.random.random_integers(0,10,30)})
print df['A']

ax1 = plt.subplot(211)
ax1.set_title('A')
ax1.set_ylabel('number of people')
ax1.set_xlabel('height')

ax2 = plt.subplot(212)
ax2.set_title('B')
ax2.set_ylabel('number of people')
ax2.set_xlabel('weight')

ax1.hist(df['A'])
ax2.hist(df['B'])

plt.tight_layout()
plt.show()

double histogram

答案 1 :(得分:2)

使用pandas,您可以像这样histograms

import numpy as np; import pandas as pd
import matplotlib.pyplot as plt

frame = pd.read_csv('data.csv')
frame.hist(layout = (2,1))
plt.show()

enter image description here

我对问题的第二部分感到困惑。你想要四个独立的子图吗?