热图可视化智能手机上的触摸输入(加权二维装箱,直方图)

时间:2019-05-29 17:06:16

标签: python matplotlib touch data-visualization heatmap

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

它可以被读取:

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

现在,我想创建一个可视化x-y空间中压力分布的热图。

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:1)

可以采用几种方法对数据进行装箱。一个只是事件的数量。像numpy.histogram2dhist2d这样的函数允许为每个数据点指定权重,以操纵每个事件的权重。

但是有一种更一般的直方图函数可能对您有用:scipy.stats.binned_statistic_2d

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

  • 平均
  • std
  • 中位数
  • 计数
  • 总和
  • 分钟
  • max
  • 或用户定义的功能

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