R语言 3D密度/相对频率直方图

6yt4nkrj  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(158)

我的任务是研究医生预约簿的持续时间和延迟。
到目前为止,我的方法是按持续时间和约定时间的偏差分别绘制和分析密度图。
| 预约ID|持续时间|偏差|在线/面对面|准时/延迟类型|
| - ------|- ------|- ------|- ------|- ------|
| 1个|5分钟|-10分钟(晚)|在线|患者迟到|
| 第二章|2分钟|-5分钟|当面|医生迟到了|
| 三个|10分钟|+5分钟(提前)|当面|准时|
| ...|...|...|...|...|
| 小行星1487|15分钟|0.2分钟|在线|准时|
现在,我只想在我的降价PDF输出中打印3D二元核密度图
我可以做二维密度图。

ggplot(final, aes(x=duration, y=deviation)) +
  stat_density_2d(aes(fill = ..level..), geom = "polygon") +
  theme_bw() +
  theme(legend.position='none') +
  xlim(0, quantile(as.numeric(final$duracion), 1-0.1)) +
  ylim(quantile(as.numeric(final$atraso), 0.01), quantile(as.numeric(final$atraso), 1-0.01))

但是,我想 * 沿z轴扩展绘图 *,方式类似于以下链接所示。
https://www.researchgate.net/figure/Distribution-of-sequence-and-genotype-derived-allele-frequencies-r-067-in-the-SNP_fig1_5555304
在使用kde2d()、rgl()和plot_ly()之后,我可以这样做,但我不能将绘图嵌入到PDF输出中,更不用说plot_ly会扰乱我的一个轴,最糟糕的是,我失去了非数值变量,这些变量允许我拆分数据并与facet_grid()aes(x, y, colour = )进行有用的比较。
有什么方法可以让我在3d图中画出每一对持续时间和偏差的密度吗?我曾经研究过wireframe()+outer(),但是似乎没有任何outer()的密度函数
先谢了。

aiazj4mn

aiazj4mn1#

您没有给予足够的数据或代码,所以我将向您展示如何使用rgl在pdf文档中嵌入一个不相关函数的3D图:

---
title: "Untitled"
date: "2023-02-16"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(rgl)
setupKnitr(autoprint = TRUE)
f <- function(x, y) { 
  r <- sqrt(x^2 + y^2)
  ifelse(r == 0, 10, 10 * sin(r)/r)
}
open3d()
plot3d(f, col = colorRampPalette(c("blue", "white", "red")), 
       xlab = "X", ylab = "Y", zlab = "Sinc( r )", 
       xlim = c(-10, 10), ylim = c(-10, 10),
       aspect = c(1, 1, 0.5))

这将生成如下所示的输出:

![](https://i.stack.imgur.com/PtFU3.png)

相关问题