热图可视化智能手机上的触摸输入(加权二维合并、直方图)

Heat map visualizing touch input on smartphone (weighted 2d binning, histogram)

我有一个数据集,其中每个样本都包含智能手机上触摸输入的 x 和 y 位置、时间戳和压力值。我已将数据集上传到此处 (OneDrive):data.csv

阅读者:

import pandas as pd
df = pd.read_csv('data.csv')

现在,我想创建一个热图来可视化 x-y 方向的压力分布 space。

我设想了一个看起来像左图或右图的热图:

对于空间位置的热图,可以使用与给定 here 类似的方法。对于压力值的热图,问题在于存在 3 个维度,即 x 和 y 位置以及压力。

我对关于热图创建的每一个输入都很满意。

可以通过多种方式对数据进行分箱。一个是事件的数量。 numpy.histogram2d or hist2d 等函数允许为每个数据点指定权重以操纵每个事件的权重。

但是有一个更通用的直方图函数可能对您的情况有用:scipy.stats.binned_statistic_2d

通过使用关键字参数 statistic,您可以选择如何根据以下值计算每个 bin 的值:

  • 平均值
  • 标准
  • 中位数
  • 计数
  • 总和
  • 分钟
  • 最大值
  • 或用户定义的函数

我想在你的情况下,均值或中位数可能是一个很好的解决方案。