R; ggplot2:将 1 个图与另一个图重叠

富吉

我有两个 ggplots。第一个看起来像这样:

ggplot(nurse, aes(x = nurse$z2.bk, y = nurse$z1.bk, color = nurse$phoneme)) +
  geom_point() +
  scale_x_reverse() + scale_y_reverse() +
  scale_color_discrete() +
  theme_classic()

在此处输入图片说明

然后我创建了一个子集,用于计算每个音素类别的 z1.bk 平均值和 z2.bk。mean_F1 = z1.bk 平均值,mean_F2 = z1.bk 平均值。

  vowel  mean_F1 mean_F2
  <fct>    <dbl>   <dbl>
1 Er     0.00830  0.612 
2 Ir    -0.0433   0.0456
3 Vr     0.0365  -0.576 

然后我为这些值创建了另一个 ggplot(如下)并根据nurse$phoneme 值标记它们。我只是在此处将它们重命名为元音,以使所有内容都更简洁。

ggplot(means, aes(x = mean_F2, y = mean_F1, label = vowel)) +
  geom_label() + 
  scale_x_reverse() + scale_y_reverse() + 
  theme_classic()

在此处输入图片说明

我现在想覆盖它们,以便标签显示在相应颜色的其他点上方,即红色的 Er.... 我尝试了以下操作,但收到一条错误消息。

ggplot(nurse, aes(x = nurse$z2.bk, y = nurse$z1.bk, color = nurse$phoneme, label = means$vowel)) +
  geom_point() + 
  geom_label(data = means, aes(x = mean_F2, y = mean_F1)) +
  scale_x_reverse() + scale_y_reverse() +
  theme_classic()

Error: Aesthetics must be either length 1 or the same as the data (563): label

If I change 'label = means$vowel' to just 'vowel', I get another error message saying the object can't be found. If I change it to nurse$phoneme, I get this error message Error: Aesthetics must be either length 1 or the same as the data (3): colour, label.

How do I combine them properly? If I need to supply you with more data, just let me know. And thanks in advance!

chemdork123

First, it's a bit of bad form to use the $ convention to call columns in ggplot2, where you should simply give the name of the column in the dataset: thus nurse$z2.bk becomes simply z2.bk in the aes() call. With that being said, you can use it and it should still work... it's just frowned upon. :)

现在,对于您收到的错误消息 - 这是因为label=在您的ggplot()调用中指示了美学为means$vowel,但在数据集中nurse,有 563 个观察值。由于您有两个数据集分别应用于您的点和标签几何体,我会在aes()每个几何体中说明它们

没有你的完整数据集,我无法确认,但这应该在下面工作。另请注意,我为颜色图例指定了一个标签,因为使用不同名称调用单独数据集中的两列很可能会拆分图例。将图例的名称设置为相同(并在每个图例中具有相同的标签)应该将两个颜色图例保持在一起。

ggplot(nurse, aes(x = z2.bk, y = z1.bk, color = phoneme)) +
  geom_point() + 
  geom_label(data = means, aes(x = mean_F2, y = mean_F1, label=vowel, color=vowel)) +
  scale_x_reverse() + scale_y_reverse() +
  labs(color='The colors') +
  theme_classic()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R中使用ggplot2和gridExtra包将一个grob对象布置在另一个grob对象中

将变量从一个TensorFlow图复制到另一个

将构面图与另一个图对齐(无构面)

在R中一个接一个地显示多个ggplot2图(就像plot.lm一样)

如何使用另一个文件(R)中的数据将数据合并到在ggplot2中构建的图中?

R:将一个图分成几个图

R:ggplot2绘制1个组合箱形图,而不是2个类别的2个图

分位数图:比较多个建模变量与一个守恒变量ggplot2 R

将R中的0和1转换为另一个数据帧

分组的条形图,R中的ggplot2,需要一次显示一个观测值

如何将ggpubr图添加到另一个图?

如何用ggplot2中的另一个变量填充分组/闪避的条形图?

一个ggplot2图中的PCA图和方差比例表-R

调整ggplot2中的标签,并在图的条形顶部添加另一个标签

将一个图的xrange固定到另一个图

MATLAB-循环后将图添加到另一个图

R ggplot2:向coord_polar添加另一个几何

与 R 重叠映射到前一个图

ggplot2 将两个图放在一个上

r:根据另一个向量中的双重出现随机分配一个向量中的“1”或“2”

R: ggplot2 使用 facet_wrap 设置中间的最后一个图

如何将点云文件与 Matlab 中的另一个图重叠?

在 ggplot2 中绘制堆积条形图:将变量表示为另一个变量的百分比

在 ggplot 上将一个条形图叠加到另一个上

在 R 中创建一个带有 2 个条形图的条形图

我如何将条形图放在 r 中的另一个图形之上

R ggplot 只显示一个条形图

将基础 R 图迁移到 ggplot2

将 R 中的两个密度图合并为一个图