我有数据绘制为点,并想添加密度图到图表.来自ggExtra或其他包的边际图解决方案没有提供我想要的自由度,因此希望在生成ggmap的同时生成密度图.

df = data.frame(x = rnorm(50, mean = 10), 
                y = runif(50, min = 10, max = 20), 
                id = rep(LETTERS[1:5], each = 10))
ggppp = ggplot(data = df, mapping = aes(x, y, color = id)) + 
  geom_point() + theme_bw()

ggppp + 
  geom_density(mapping = aes(y = y, 
                             col = id),
               inherit.aes = FALSE, bounds = c(-Inf, Inf)) +
  geom_density(mapping = aes(x = x,
                             col = id),
               inherit.aes = FALSE, ) 

enter image description here

有没有办法将密度图移动到x或y位置的其他值(如将密度线移动到下图中箭头的尖端)?

推荐答案

你可以用position_nudge来换位:

## using your example objects:
ggppp + 
  geom_density(mapping = aes(y = y , col = id),
               position = position_nudge(x = 12),
               inherit.aes = FALSE
               ) +
  geom_density(mapping = aes(x = x, col = id),
               position = position_nudge(y = 20),
               inherit.aes = FALSE
)

R相关问答推荐

在ggplot的注释表格中突出显示最大值

如何根据组大小应用条件过滤?

gt()从gt为相同内容的单元格 colored颜色 不同?

如何使用R对每组变量进行随机化?

整数成随机顺序与约束R?

在连续尺度上转置标签[瀑布图,R]

在ggplot2中更改小提琴情节的顺序

如何从R ggplot图片中获取SVG字符串?

使用范围和单个数字将数字与字符串进行比较

Ggplot2中geom_tile的动态zoom

R:用GGPLATE,如何在两个独立的变量中制作不同形状的散点图?

无法将条件case_when()应用于使用!!创建的新变量Mutations

R-找出存在其他变量的各种大小的所有组合

如何合并不同列表中的数据文件,包括基于名称的部分匹配,而不是一对一等价

如何捕获这个shiny 的、可扩展的react 性用户输入矩阵作为另一个react 性对象,以便进一步操作?

将日期列从字符转换为日期得到的结果是NAS

如何在一个GGPLATE中绘制多个灰度平滑?

使用nls()函数的非线性模型的半正态图

带查找数据的FCT_REORDER.帧

如果缺少时间,如何向日期-时间列添加时间