- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建注 View ,其中二维密度图上每个注视的权重由其持续时间决定。据我了解,stat_density2d()
函数接受权重参数但不处理它 ( ggplot2 2d Density Weights )
有办法解决这个问题吗?另外,我怎样才能平滑热图的粒度?我一定在这里遗漏了一些非常明显的东西
#sample data
set.seed(42) ## for sake of reproducibility
df <- data.frame(x=sample(0:1920, 1000, replace=TRUE),
y=sample(0:1080, 1000, replace=TRUE),
dur=sample(50:1000, 1000, replace=TRUE))
#what I have so far
library(ggplot2)
ggplot(df, aes(x=x, y =y)) +
stat_density2d(geom='raster',
aes(fill=..count.., alpha=..count..), contour=FALSE) +
geom_point(aes(size=dur), alpha=0.2, color="red") +
scale_fill_gradient(low="green", high="red") +
scale_alpha_continuous(range=c(0, 1) , guide="none") +
theme_void()
最佳答案
不是 ggplot2
用户,但基本上您想估计加权二维密度并从中制作图像
。你的linked answer表示 ggplot2::geom_density2d
内部使用 MASS::kde2d
,但它只计算未加权的二维密度。
类似于 @AllanCameron 的建议(但无需使用 tidyr
),我们可以简单地通过按持续时间毫秒数复制每一行来膨胀数据框,
dfa <- df[rep(seq_len(nrow(df)), times=df$dur), -3]
并手工计算kde2d
。
n <- 1e3
system.time(
dens1 <- MASS::kde2d(dfa$x, dfa$y, n=n) ## this runs a while!
)
# user system elapsed
# 2253.285 2325.819 661.632
n=
参数表示每个方向上的网格点数,我们选择的越大,热图图像中的粒度就越平滑。
system.time(
dens1 <- MASS::kde2d(dfa$x, dfa$y, n=n) ## this runs a while
)
# user system elapsed
# 2253.285 2325.819 661.632
image(dens1, col=heat.colors(n, rev=TRUE))
这几乎永远运行,尽管 n=1000
...
在对上述答案的评论中,@IRTFM links一个古老的 r-help 帖子,它提供了一个 kde2d.weighted
函数,它快如闪电,我们可以尝试(见底部的代码)。
dens2 <- kde2d.weighted(x=df$x, y=df$y, w=proportions(df$dur), n=n)
image(dens2, col=heat.colors(n, rev=TRUE))
但是,这两个版本看起来很不一样,我不知道哪个是对的,因为我不是这个方法的专家。但至少与未加权的图像有明显的区别:
dens0 <- MASS::kde2d(df$x, df$y, n=n)
image(dens0, col=heat.colors(n, rev=TRUE))
仍然添加点可能没有意义,但您可以在 image
之后运行此行:
points(y ~ x, df, cex=proportions(dur)*2e3, col='green')
摘自r-help(Ort 2006):
kde2d.weighted <- function(x, y, w, h, n=n, lims=c(range(x), range(y))) {
nx <- length(x)
if (length(y) != nx)
stop("data vectors must be the same length")
gx <- seq(lims[1], lims[2], length=n) ## gridpoints x
gy <- seq(lims[3], lims[4], length=n) ## gridpoints y
if (missing(h))
h <- c(MASS::bandwidth.nrd(x), MASS::bandwidth.nrd(y))
if (missing(w))
w <- numeric(nx) + 1
h <- h/4
ax <- outer(gx, x, "-")/h[1] ## distance of each point to each grid point in x-direction
ay <- outer(gy, y, "-")/h[2] ## distance of each point to each grid point in y-direction
z <- (matrix(rep(w,n), nrow=n, ncol=nx, byrow=TRUE)*
matrix(dnorm(ax), n, nx)) %*%
t(matrix(dnorm(ay), n, nx))/(sum(w)*h[1]*h[2]) ## z is the density
return(list(x=gx, y=gy, z=z))
}
关于r - 带有眼球追踪数据的热图(加权二维密度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71966103/
我正在开发一个网站,在不使用任何第三方 API 的情况下使用 Firebase 云消息传递(Chrome 和 Firefox 浏览器)向我的订阅者发送推送通知。推送通知发送工作正常,但我不知道“如何跟
我在尝试追踪此 OutOfMemoryError 时遇到了非常糟糕的时间,非常感谢您的帮助。我的应用程序分为架构部分和一个模块,该模块公开一些基本的 REST WS 以及 Hibernate 进行的数
在 Android 操作系统源代码中(路径:/drivers/staging/android/binder_trace.h),我们有一个名为 binder_trace.h 的文件,并且在 /drive
我正在查看我的 CakePHP 应用程序的 error.log,并看到我定期收到此类信息: 2011-07-28 14:49:39 Warning: Warning (2): Missing argu
我收到了有关我的应用程序中内存泄漏的报告,但我无法准确追踪到底发生了什么。我有一个功能可以取出旧 View 并交换新 View 。我没有使用 NavControllers 或任何 @propertie
这是真气! >_< 我编写了一个庞大而复杂的 Haskell 库。我写了一个小测试程序,到目前为止,我已经花了大约 8 个小时试图弄清楚为什么它一直在我身上崩溃。有时 GHC 会提示“奇怪的封闭类型”
是否有系统的方法来调试导致组件在 React 中重新渲染的原因?我放置了一个简单的 console.log() 来查看它渲染了多少次,但我很难弄清楚是什么导致组件渲染多次,即在我的情况下(4 次)。是
我已经升级到 Django 1.4,现在当我运行我的开发服务器时,我收到以下警告: /home/flc/venvs/myprj/lib/python2.6/site-packages/django/v
我有一个 Web 应用程序在某处存在内存泄漏,但我无法检测到它。我已经尝试过 Chrome 开发者工具,通常效果很好,但我无法追踪负责的代码行。 Chrome 工具给了我太多信息,我无法将内存中的对象
直接从标记调用函数的好处之一是更容易跟踪所调用的内容。我想知道是否有浏览器插件或其他东西支持附加(绑定(bind))到元素的每个事件的“Goto javascript 源函数”。理想情况下,这会将我带
我在工作中使用 darcs 已经一年多了,但我一直在问自己同样的问题: 跟踪导致两个补丁之间依赖的代码行/文件/代码更改的最佳方法是什么?目前我的做法如下: 我使用 darcs changes -i
我知道以前有人问过此类问题,但我无法解决我的疑问。我有一个简单的黑白棋引擎(实际上它玩得很好),它使用下面的类来获得最佳棋步: import java.util.*; import java.util
上下文:我们正在构建用于快速交付 WPF 应用程序的框架。该框架使用 Autofac 作为 IoC 容器,还使用 Prism v1 中的区域。我们正在使用 Microsoft 的并行扩展来安排任务
有什么追踪东西的技巧吗?技术?任何可用于检查函数 x 的调用者的工具(调用堆栈的某些部分显示为 ??? 或被跳过)。 --track-origins=yes 是否会使速度变慢(当我尝试这样做时,我使用
我有一个基于 KnockoutJS 2.2.1 创建的 jQuery 网格插件。到目前为止它进展顺利,但是当插件在一个元素上初始化时,'computed' loadGrid 方法调用 3 次。 为了说
我是这种开发的新手。我正在尝试创建一个涉及 GPS 跟踪的 android 应用程序。我正在使用 Nutiteq,因为我必须使用 openstreetmap 作为默认 map 。请帮助我。 最佳答案
我希望用户能够通过我的应用程序之一跟踪他们的 friend 。该应用程序适用于音乐节。 我一直在想办法做到这一点: 让用户为设备设置昵称(与 UDID 关联),并让用户通过昵称将彼此添加到“好友列表”
有没有办法找到所有者或域名示例,如果我给谷歌的IP,我的工具发现谷歌的IP,这应该以编程方式完成地址最喜欢的编程语言将是VC++其他语言也不是问题 最佳答案 您正在寻找的关键字似乎是WHOIS 通常可
我的 VC++ 项目中有几个包含大量类的 map ,其中一些默认可构造,另一些则不能。尝试构建时,出现“没有合适的默认构造函数可用”错误。问题是错误被列为发生在 map.cpp 的第 173 行,这是
我平均工作(约 20k 行代码,Objective-C 与 C++ 混合),我正在努力寻找 EXC_BAD_ACCESS 错误。 我已经尝试了所有常见的技术(比如启用 NSZombie、guard e
我是一名优秀的程序员,十分优秀!