- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 R 中叠加三个不同的密度图,以创建一个显示所有三条线的图(叠加)。我已经安装/加载了 sm
软件包,但我尝试将它与我的数据一起使用,但没有成功。我简单地使用密度()创建了三个单独的数据图并绘制了值。我的代码如下所示:
library(sm)
set.seed(0)
x <- rnorm(100, 0, 1)
y <- rnorm(126, 0.3, 1.2)
z <- rnorm(93, -0.5, 0.7)
dx <- density(x)
dy <- density(y)
dz <- density(z)
plot(dx)
plot(dy)
plot(dz)
但是当我尝试使用 sm.densis.compare()
覆盖图表时:
sm.density.compare(dx,dy,model="equal")
我收到一条错误消息:
Error in sm.density.compare(dx, dy, model = "equal") :
sm.density.compare can handle only 1-d data trace:
有人知道我该如何解决这个问题吗?我已经研究了很多但没有成功。我对 R 还很陌生,确实需要帮助。
最佳答案
如果您想使用sm.densis.compare()
,则不要使用densis()
。
sm.densis.compare()
本身正在进行密度估计。具体来说,它对分组数据进行密度估计,以便您可以在同一张图表上绘制不同组的密度。
这是您真正需要做的:
## three groups, each of length: length(x), length(y), length(z)
group.index <- rep(1:3, c(length(x), length(y), length(z)))
## collect data together and use sm.density.compare()
den <- sm.density.compare(c(x,y,z), group = group.index, model = "equal")
## plot will be generated automatically
使用model = "equal"
时,sm.密度.compare()
已返回值。看看str(den)
:
List of 4
$ p : num 0
$ estimaate : num [1:3, 1:50] 2.37e-07 3.81e-06 6.06e-10 2.17e-06 2.26e-05 ...
$ eval.points: num [1:50] -4.12 -3.94 -3.76 -3.58 -3.4 ...
$ h : num 0.376
h
包含用于所有密度估计的带宽,eval.points
包含估计点,而 estimaate
是密度估计值的矩阵。 (Adrian 这里有一个拼写错误,应该是“估计”,而不是“估计”,哈哈)。
sm
包中的所有函数,以前缀 sm.
开头,接受可选参数 ...
,传递给 sm.options
。阅读一下?sm.options
,您会发现您可以完全控制颜色显示、线型和线宽、带宽选择方法等。
引用带只会添加到两组数据中。即,对于成对比较,sm.densis.compare()
可以做更多事情。例如:
den2 <- sm.density.compare(c(x,y), group = rep(1:2, c(length(x), length(y))),
model = "equal")
> str(den2)
List of 6
$ p : num 0.22
$ estimate : num [1:2, 1:50] 4.92e-06 2.70e-05 2.51e-05 1.00e-04 1.09e-04 ...
$ eval.points: num [1:50] -4.12 -3.94 -3.76 -3.58 -3.4 ...
$ upper : num [1:50] 0.00328 0.00373 0.00459 0.00614 0.00886 ...
$ lower : num [1:50] 0 0 0 0 0 ...
$ h : num 0.44
其中lower
和upper
给出引用带/置信区域的界限。
如果您使用密度()
,则不要使用sm.密度.compare()
## set universal estimation range
xlim <- range(x, y, z)
dx <- density(x, from = xlim[1], to = xlim[2], n = 200)
dy <- density(y, from = xlim[1], to = xlim[2], n = 200)
dz <- density(z, from = xlim[1], to = xlim[2], n = 200)
在这种情况下,每个组的密度估计是独立完成的。每个“密度”对象都是一个列表,例如:
> str(dx)
List of 7
$ x : num [1:200] -2.64 -2.61 -2.58 -2.55 -2.52 ...
$ y : num [1:200] 0.023 0.026 0.0291 0.0323 0.0356 ...
$ bw : num 0.31
$ n : int 100
$ call : language density.default(x = x, n = 200, from = xlim[1], to = xlim[2])
$ data.name: chr "x"
$ has.na : logi FALSE
- attr(*, "class")= chr "density"
x
是评估点,y
是估计密度,bw
是使用的带宽。您会看到,由于独立估计,dx$bw
、dy$bw
和 dz$bw
是不同的。但是,您可以在调用密度() 时使用参数bw
手动指定通用bw
。请参阅?密度
,这里不再举例。
现在,要覆盖这些密度图,您需要自己动手。
## set global plotting range
ylim <- range(dx$y, dy$y, dz$y)
## make plot
plot(dx$x, dx$y, col = 1, lwd = 2, type = "l", xlim = xlim, ylim = ylim)
lines(dy$x, dy$y, col = 2, lwd = 2)
lines(dz$x, dz$y, col = 3, lwd = 2)
关于r - sm.密度.compare() : displaying multiple density estimations in a single plot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976140/
我正在尝试使用R中的“密度”函数查找具有未知分布的连续数据的最佳PDF。现在,给定一个新的数据点,我想基于核密度找到该数据点的概率密度从“密度”函数结果得到的估计量。 我怎样才能做到这一点? 最佳答案
我在尝试绘制 density 对象时遇到问题。考虑例如 require(grDevices) set.seed(43) d0 = density(rexp(1e5,rate=1)) d1 = dens
我正在从 JAGS 迁移到 LaplacesDemon 并尝试重写我的一些代码。我读过 LaplacesDemon Tutorial和 LaplacesDemon Examples小插图,我对小插图中
猜猜看,另一个 Android-Bitmap-OOM 问题! 背景 压力测试our application已经注意到,在持续、大量使用(像猴子奔跑者一样)后,可能会最大化应用程序的进程内存分配,并在随
这两个在数学方面做的一样吗?它们产生相同的结果吗? Java: pixel=10; margin=px * getResources().getDisplayMetrics().density; la
有没有办法让 R 中的 density() 函数使用计数与概率? 例如,在使用直方图函数 hist 检查密度分布时,我有两个选择。 : hist(x,freq=F) #"graphic is a r
今年夏天我有一个项目即将完成,该项目可能会涉及大量的图像数据用于显示。我们讨论的是给定应用程序 session 中的数百个 640x480 左右的图像(显示时缩放到较小的分辨率),以及一次大量的非常大
我正在尝试使用 ggridges 包(基于 ggplot2)创建一个 joyplot。一般的想法是 joyplot 创建很好缩放的堆叠密度图。但是,我似乎无法使用加权密度生成其中之一。在创建 joyp
我正在尝试使用 ggridges 包(基于 ggplot2)创建一个 joyplot。一般的想法是 joyplot 创建很好缩放的堆叠密度图。但是,我似乎无法使用加权密度生成其中之一。在创建 joyp
我为 list 文件中的 Activity 添加了 android:configChanges="density"。但我没有收到 onConfigurationChanged() 回调
我有这个图像映射,它使用 CSS 实现在框中显示信息的悬停效果。基本上,您将鼠标悬停在其中一个 map 标记上,然后它会显示有关该 map 区域的信息。可以在下面的链接上查看。 http://phan
某些设备的设备密度返回 0。以下代码用于计算设备密度: WindowManager wm = (WindowManager) context .getSystemService(Con
float 越大(无论是正数还是负数),我们用于编码十进制数字的位数就越少,这是真的吗? 我们能否在 21 和 22 之间编码比 216 和 232 之间更多的十进制数字? 这两个范围之间的值计数是否
我正在用 python 编码。我有 3 个数组 x、y 和 z,我想用 colorbar 绘制平面 (x,y) 中 z 值的二维密度图。 所以在我的图中,点 x[0] 和 y[0] 的颜色将由 z[0
我正在阅读 The R Graphics Cookbook 并遇到了这组代码: library(gcookbook) library(ggplot2) p <- ggplot(faithful, ae
我想最终做到这一点: library(ggplot2) density=TRUE if (density) {ggplot(diamonds,aes(x=price)) + geom_histogra
在我的 android 中,avd 密度是 120,但是当我在 getResources().getDisplayMetrics().density 的帮助下计算它时,它是 .75。 为什么它们不同?
这是我要运行的代码 import sc2 from sc2 import run_game, maps, Race, Difficulty from sc2. player import Bot, C
我创建了一个依赖于某些屏幕指标来运行的应用程序。它适用于所有设备,除了 Galaxy Note 5。在 Note 5 上,它报告屏幕尺寸为 1080x1920,而屏幕实际上是 1440x2560。我还
我希望构建一个静态 KML(Google 地球标记)文件,该文件以 [lat, lon, density] 元组的形式显示一些给定数据集的热图样式渲染。 我拥有的一个非常简单的数据集是人口密度。 我的
我是一名优秀的程序员,十分优秀!