
https://github.com/werifu/keyboard-heatmap
如题,出发点是想知道自己哪些按键用最多,又想直观看到效果,所以采取了热力图的样子,做成键盘的布局,实现使用的是 Rust 的 egui ,原理其实就是监听键盘事件然后统计映射到热力图上而已。
支持两种键盘的布局,一种是 MacBook 的键盘,另一种是 87 键的键盘(也就是中间有控制键区,但是没有小键盘的),都是 QWERTY 美式键盘布局,因为我手头只有这两种键盘,别的没法试所以就没做了。
由自定义色相决定主题颜色
可以保存为图片

效果大概如下,是大概半个小时内的按键统计情况,主要做的事是在水群(也就是打汉字拼音,不过我用的是双拼,所以猜测跟全拼可能会有比较大差异,欢迎 po 出来)

有个缺陷是按键的热力图深度到 150+基本就人眼不可区分了,我是用 HSL 颜色空间来做热力图深度的,空间也比较有限,没有特别好的办法,有好做法的话也欢迎建议。
1 AoEiuV020CN 2023 年 1 月 3 日 深度这个, 为什么用 sigmoid ,感觉第一反应应该是线性的,把当前最高作为线性最大值,映射到 0-1 ,有什么不好的吗? |
2 wdy3334 2023 年 1 月 3 日 ctrl c v |
3 opengps 2023 年 1 月 3 日 Ctrl ,C ,V ,Enter |
4 enzyme 2023 年 1 月 3 日 不错。 有个其实没什么用的小建议。为了增加趣味性,鼓励用户分享。可以考虑输出下最常用的字母案件是什么。最接近的英文词是什么,最接近的中文词汇是什么。 |
5 loading 2023 年 1 月 3 日 via Android 想法不错,有空我也试一下仿一个出来。 |
6 PerFectTime 2023 年 1 月 3 日 那自然是 CV 最多了 |
8 hertzry 2023 年 1 月 3 日 直接除以最大值变成 0~1 。 |
9 luckykong 2023 年 1 月 3 日 可以增加一个功能,按照空格将输入分隔开,然后进行词频统计,把最高的几个词标出来。这样就能简单的实现 4 楼的想法了。反正只是图好玩,准不准确无所谓 |
10 LuxChen 2023 年 1 月 4 日 这个工具开着之后,不知道为什么,打字总会多出来几个字母,就好比现在这样,不确定是不是这个原因 iidi |
11 missdeer 2023 年 1 月 4 日 改成立体的,越多越高 |
12 liuidetmks 2023 年 1 月 4 日 加强版,鼠标点击的分布。 (想不出有什么现实意义。 |
13 lxms2021 2023 年 1 月 4 日 每个键上面能显示按键次数么 |
14 Picmen 2023 年 1 月 5 日 数量多了之后颜色不好分辨的话,建议增加数量显示/div> |
16 shantongxu 2023 年 1 月 5 日 可以记录按键寿命, 键盘一直宣传几千万次的点击寿命,用个几年看看能不能达到 |
17 pagict 2023 年 1 月 5 日 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 年 1 月 10 日 可以加个。 按键组合频次列表。 按键间隔不超过某个阈值( 0.5s )视为为一个组合内的。长度不限 怎样就 我今天 CTRL+C 1000 次。。。。 CTRL+V 1100 EN 999 次 最长的组合是 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |