在熊猫中绘制直方图

时间:2016-07-28 13:15:12

标签: pandas plot dataframe

我希望在重叠的区间中绘制每组10个点的数据集。

 values1 = [29, 31, 24, 30, 30, 14, 25, 35, 27, 31]
 values2 = [36, 29, 29, 29, 34, 33, 27, 34, 36, 39]

当我将它们添加到数据框时,它们会显示为2列。 我希望绘制2行,每行有10个重叠的列。

df1 = pd.DataFrame(values1, values2)

随后当我使用直方图绘制它们时,它们无法正确显示

  df1.plot.hist(stacked = True)
  plt.show()

所以我的目标是在数组中的每个数字之间进行成对比较。 29 - 36,31 - 29,24 - 29等。

我想绘制它们以便它们重叠作为这个例子 http://pandas.pydata.org/pandas-docs/stable/_images/hist_new_stacked.png 但是我只有值而不是三个,例如。

1 个答案:

答案 0 :(得分:1)

您可以将它们作为值传递给dict:

values1 = [29, 31, 24, 30, 30, 14, 25, 35, 27, 31]
values2 = [36, 29, 29, 29, 34, 33, 27, 34, 36, 39]
df1 = pd.DataFrame({'values1':values1, 'values2':values2})
df1.plot.hist(stacked = True)

enter image description here

你做了什么导致ctor将传递的值解释为单列数据,然后是索引值:

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

比较差异:

In [166]:
pd.DataFrame(values1, values2)

Out[166]:
     0
36  29
29  31
29  24
29  30
34  30
33  14
27  25
34  35
36  27
39  31

In [167]:
pd.DataFrame({'values1':values1, 'values2':values2})

Out[167]:
   values1  values2
0       29       36
1       31       29
2       24       29
3       30       29
4       30       34
5       14       33
6       25       27
7       35       34
8       27       36
9       31       39