我需要使用pandas数据框中的轮廓曲线和颜色条绘制hist2d
。
数据框有三个列:
x_col, y_col, z_col
我想绘制类似这样的内容,其中z_col
是hist2d
的权重:
但我不知道如何从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')
答案 0 :(得分:-1)
您必须输入长度为x或y的数组(这些数组也必须具有相同的长度)
由于z_col是数据框中的一列,因此它将具有正确的尺寸(与x_col或y_col相同)
要获取数组,您需要:dataframe.z_col.values这是一个数组)。另一方面,dataframe.z_col是熊猫系列