可以ggplot2用来产生一个所谓的topoplot(经常用于神经科学)?
样本数据:
label x y signal
1 R3 0.64924459 0.91228430 2.0261520
2 R4 0.78789621 0.78234410 1.7880972
3 R5 0.93169511 0.72980685 0.9170998
4 R6 0.48406513 0.82383895 3.1933129
Run Code Online (Sandbox Code Playgroud)
行代表单个电极.列x和y表示投影到2D空间中,列signal基本上是z轴,表示在给定电极处测量的电压.
stat_contour 不起作用,显然是由于网格不平等.
geom_density_2d只提供的密度估计x和y.
geom_raster 是不适合这项任务的,或者我必须错误地使用它,因为它很快就会耗尽内存.
不需要平滑(如右图所示)和头部轮廓(鼻子,耳朵).
我想避免使用Matlab并转换数据,以便它适合这个或那个工具箱......非常感谢!
我能够达到目标的最接近的是通过
library(colorRamps)
ggplot(channels, aes(x, y, z = signal)) + stat_summary_2d() + scale_fill_gradientn(colours=matlab.like(20))
Run Code Online (Sandbox Code Playgroud)
产生这样的图像:
我已经尝试了@ alexforrence的完整数据方法,这就是结果:
这是一个很好的开始,但有几个问题:
ggplot())在Intel i7 4790K上大约需要40秒,而Matlab工具箱几乎可以立即生成这些内容.我上面的'紧急解决方案'需要大约一秒钟.我收到这些警告:
1: Removed 170235 …Run Code Online (Sandbox Code Playgroud)