r - R; ggplot2:将 1 个图与另一个图重叠
问题描述
我有两个ggplots。第一个 1 看起来像这样:
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(如下),并根据护士 $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
如果我将 'label = mean$vowel' 更改为 'vowel',我会收到另一条错误消息,指出找不到对象。如果我将其更改为nurse$phoneme,我会收到此错误消息Error: Aesthetics must be either length 1 or the same as the data (3): colour, label
。
如何正确组合它们?如果我需要为您提供更多数据,请告诉我。并提前感谢!
解决方案
$
首先,使用约定来调用列的形式有点糟糕ggplot2
,您应该简单地给出数据集中列的名称:因此在调用中nurse$z2.bk
变得简单。话虽如此,你可以使用它,它应该仍然可以工作......它只是皱眉。:)z2.bk
aes()
现在,对于您收到的错误消息 - 这是因为label=
在您的ggplot()
调用中指出了审美 for be means$vowel
,但在 datasetnurse
中,有 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()
推荐阅读
- java - Java 内置 JSON 解析器
- javascript - 未捕获的类型错误:无法读取 null XMLHttpRequest JAVASCRIPT 的属性“项目”
- r - 我对 glm 的 anova 测试的软件 R 有问题
- python - def() Python 中超过 2 条返回规则
- javascript - Angular js代码在使用错误后终止
- rxjs - ngx-select-dropdown 如何包含 debounceTime?
- spring-boot - 当spring boot应用程序在linux中部署为服务时,如何动态传递或指定application.yml?
- c++ - 在引用初始化中使用已删除的复制构造函数进行复制初始化
- jwt - 如何配置并告诉 Auth0 使用 Authorities (JWT) 返还身份验证令牌
- c# - 将另一个对象的值分配给这个 c#