【问题标题】:HeatMap in Holoviews?Holoviews 中的热图?
【发布时间】:2019-09-19 14:41:15
【问题描述】:

我正在尝试使用 Holoviews 绘制热图。我做了几次尝试,但没有成功。 我绘制具有 2 个值的数据(一个在“x”轴上,一个在“y”轴上),我希望每种颜色都代表数量(如热图中的直方图)。

【问题讨论】:

  • 您能否详细说明您的数据是什么样的。
  • 不幸的是我这里没有代码。但问题是我有一个数据框,例如,我想用 data['a'] 和 data['b'] 创建一个 HeatMap,我希望第三个组件代表数据的数量,其中 data['a '] 和 data['b'] 有一些值
  • 您能否在问题中的 a 列、b 列和 c 列中放置一个数据示例?这实际上取决于您的数据是什么样的。 a列和b列是分类数据还是数值数据?
  • 只是数字数据!这些就像空间 2D 中的坐标,所以你应该想象一列是 x 轴,另一列是 y 轴。第三个组件表示我在每个点有多少数据

标签: python heatmap holoviews


【解决方案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')

或者,如果您有 很多 数据,您可以使用内置的数据着色器支持来做同样的事情:

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 以在缩放时动态重新采样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多