我正在尝试使用Holoviews绘制HeatMap。我做了几次尝试,但没有成功。 我绘制了具有2个值的数据(一个在“ x”轴上,一个在“ y”轴上),我希望每种颜色代表数量(例如HeatMap中的直方图)。
答案 0 :(得分:1)
在HoloViews中,HeatMap
实际上是用于分类数据的。如果您的数据是数字数据,那么您真的想计算2D直方图并使用hv.Image元素,则可以使用np.histogram2d进行此操作,例如:
a, b = np.random.randn(1000, 2).T
df = pd.DataFrame({'a': a*10, 'b': b}, columns=['a', 'b'])
z, a, b = np.histogram2d(df['a'], df['b'])
hv.Image((a, b, z), ['a', 'b'], 'Count')
或者,如果您有很多数据,则可以使用内置的datashader支持来执行相同的操作:
from holoviews.operation.datashader import rasterize
a, b = np.random.randn(1000, 2).T
df = pd.DataFrame({'a': a*10, 'b': b}, columns=['a', 'b'])
rasterize(hv.Scatter(df), width=10, height=10, dynamic=False)
根据需要调整宽度和高度,或者删除dynamic = False以在缩放时动态重新采样。