https://github.com/werifu/keyboard-heatmap
如题,出发点是想知道自己哪些按键用最多,又想直观看到效果,所以采取了热力图的样子,做成键盘的布局,实现使用的是 Rust 的 egui ,原理其实就是监听键盘事件然后统计映射到热力图上而已。
支持两种键盘的布局,一种是 MacBook 的键盘,另一种是 87 键的键盘(也就是中间有控制键区,但是没有小键盘的),都是 QWERTY 美式键盘布局,因为我手头只有这两种键盘,别的没法试所以就没做了。
由自定义色相决定主题颜色
可以保存为图片
效果大概如下,是大概半个小时内的按键统计情况,主要做的事是在水群(也就是打汉字拼音,不过我用的是双拼,所以猜测跟全拼可能会有比较大差异,欢迎 po 出来)
有个缺陷是按键的热力图深度到 150+基本就人眼不可区分了,我是用 HSL 颜色空间来做热力图深度的,空间也比较有限,没有特别好的办法,有好做法的话也欢迎建议。
![]() | 1 AoEiuV020CN 2023-01-03 17:04:14 +08:00 深度这个, 为什么用 sigmoid ,感觉第一反应应该是线性的,把当前最高作为线性最大值,映射到 0-1 ,有什么不好的吗? |
![]() | 2 wdy3334 2023-01-03 17:05:49 +08:00 ctrl c v |
![]() | 3 opengps 2023-01-03 17:06:11 +08:00 Ctrl ,C ,V ,Enter |
![]() | 4 enzyme 2023-01-03 17:37:19 +08:00 不错。 有个其实没什么用的小建议。为了增加趣味性,鼓励用户分享。可以考虑输出下最常用的字母案件是什么。最接近的英文词是什么,最接近的中文词汇是什么。 |
![]() | 5 loading 2023-01-03 17:37:53 +08:00 via Android 想法不错,有空我也试一下仿一个出来。 |
6 PerFectTime 2023-01-03 18:38:36 +08:00 那自然是 CV 最多了 |
![]() | 7 EngAPI 2023-01-03 18:44:04 +08:00 装了个 kmcounter v3.7 也差不多类似的,刚开始看看,后来直接废弃了 |
8 hertzry 2023-01-03 20:16:12 +08:00 直接除以最大值变成 0~1 。 |
![]() | 9 luckykong 2023-01-03 21:06:54 +08:00 可以增加一个功能,按照空格将输入分隔开,然后进行词频统计,把最高的几个词标出来。这样就能简单的实现 4 楼的想法了。反正只是图好玩,准不准确无所谓 |
![]() | 10 LuxChen 2023-01-04 08:53:46 +08:00 这个工具开着之后,不知道为什么,打字总会多出来几个字母,就好比现在这样,不确定是不是这个原因 iidi |
11 missdeer 2023-01-04 09:05:33 +08:00 ![]() 改成立体的,越多越高 |
12 liuidetmks 2023-01-04 10:44:41 +08:00 加强版,鼠标点击的分布。 (想不出有什么现实意义。 |
![]() | 13 lxms2021 2023-01-04 15:36:41 +08:00 每个键上面能显示按键次数么 |
14 Picmen 2023-01-05 16:55:04 +08:00 数量多了之后颜色不好分辨的话,建议增加数量显示 |
16 shantongxu 2023-01-05 17:22:23 +08:00 可以记录按键寿命, 键盘一直宣传几千万次的点击寿命,用个几年看看能不能达到 |
![]() | 17 pagict 2023-01-05 22:28:54 +08:00 3D 柱状图,高度为频次 |
![]() | 18 werifu OP @AoEiuV020CN 我其实是取了半个 sigmod ,让导数单调递减,不用线性的理由是我想加大按键次数比较少时的颜色变化,因为有些按键的频率是非常低的,可能很长时间只会按到一两次,按线性去平分颜色会让这些键非常不明显,而对次数比较多的键,对多一两次感知并不敏感 |
![]() | 19 werifu OP @missdeer 我觉得是个可以的思路,做成类似 https://skyline.github.com/ 的 3D 柱状图 |
![]() | 21 werifu OP @liuidetmks 商业上一些 web 服务有这种鼠标 click/hover 分布的热力图统计,不过似乎主要是用来给 PM 看和改进产品的 |
22 lyqqqq 2023-01-10 10:06:00 +08:00 可以加个。 按键组合频次列表。 按键间隔不超过某个阈值( 0.5s )视为为一个组合内的。长度不限 怎样就 我今天 CTRL+C 1000 次。。。。 CTRL+V 1100 EN 999 次 最长的组合是 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |