用权重绘制hist2d

时间:2015-01-26 12:34:26

标签: python pandas numpy matplotlib weighted-graph

我需要使用pandas数据框中的轮廓曲线和颜色条绘制hist2d

数据框有三个列:

x_col, y_col, z_col

我想绘制类似这样的内容,其中z_colhist2d的权重:

但我不知道如何从hist2d函数将z_col转换为权重1D数组。

fdf = df.groupby([valueX, valueY], as_index=False).mean().sort([valueX, valueY])
x = fdf[valueX]
y = fdf[valueY]
z = fdf[valueZ]

(... axes instantiation)

bins = 100

counts, xbins, ybins, image = axes.hist2d(x, y, bins=bins, normed=True, weights=z)
axes.contour(counts, extent=[xbins.min(), xbins.max(), ybins.min(), ybins.max()], linewidths=3)

pc = axes.pcolor(counts, cmap=cm.jet)
fig.colorbar(pc)

axes_x.hist(x, bins=bins)
axes_y.hist(y, bins=bins, orientation='horizontal')

1 个答案:

答案 0 :(得分:-1)

您必须输入长度为x或y的数组(这些数组也必须具有相同的长度)

由于z_col是数据框中的一列,因此它将具有正确的尺寸(与x_col或y_col相同)

要获取数组,您需要:dataframe.z_col.values这是一个数组)。另一方面,dataframe.z_col是熊猫系列