R 标记geom_点,但不是所有点

R 标记geom_点,但不是所有点,r,ggplot2,R,Ggplot2,我会有一个显示良好的数据表。然而,如果我想标记这些点,它最终会陷入混乱,因为有太多的数据点。因此,我只想显示一些标签。我这样试过: p <- ggplot() + coord_fixed() + theme_bw() + theme( legend.position="none", panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.border = element_blank(),

我会有一个显示良好的数据表。然而,如果我想标记这些点,它最终会陷入混乱,因为有太多的数据点。因此,我只想显示一些标签。我这样试过:

p <- ggplot() + 
coord_fixed() +
theme_bw() +
theme(
legend.position="none",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank()) +
scale_size_area(max_size = 20) +
scale_x_continuous("<= Links - Rechts =>") +
scale_y_continuous("<= Konservativ - Liberal =>") +
layer(
data=werte,
mapping=aes(x=(xy$x + abs(X_Mini) ) * 150 / (X_Maxi-X_Mini), 
y=(xy$y + abs(Y_Mini) ) * 150  / (Y_Maxi-Y_Mini),
            size=werte$avg_gult,
            colour = werte$kern_uml,
            alpha = 1/100 ), 
geom="point",
scale_size_area(max_size = 30)
) +
geom_text(data=subset(werte, avg_gult > 1000),
aes(x=(xy$x + abs(X_Mini) ) * 150 / (X_Maxi-X_Mini),
y=(xy$y + abs(Y_Mini) ) * 150  / (Y_Maxi-Y_Mini))
aes(label=werte$Gemeinde))
p 
         x      y   avg_gult        Gemeinde    kern_uml
1   -0.230  1.720   559     Aeugst am Albis     U
2   -0.534  1.018   2595    Affoltern am Albis  U
3   -0.182  1.546   1395    Bonstetten          U
4   -0.590  1.194   1017    Hausen am Albis     0
5   -0.240  1.443   988     Hedingen            U
6   0.810   0.169   312     Kappel am Albis     0
7   -0.430  0.915   526     Knonau              U
8   -0.517  0.484   202     Maschwanden         0
etc.

X_Maxi <- 3.5
X_Mini <- -4.5

Y_Maxi <- 3.5
Y_Mini <- -4.5
它可以工作,但正如前面提到的,我不希望所有的点都被标记(只有那些平均值大于1000的点)。非常感谢您的帮助,谢谢

werte
看起来像这样:

p <- ggplot() + 
coord_fixed() +
theme_bw() +
theme(
legend.position="none",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank()) +
scale_size_area(max_size = 20) +
scale_x_continuous("<= Links - Rechts =>") +
scale_y_continuous("<= Konservativ - Liberal =>") +
layer(
data=werte,
mapping=aes(x=(xy$x + abs(X_Mini) ) * 150 / (X_Maxi-X_Mini), 
y=(xy$y + abs(Y_Mini) ) * 150  / (Y_Maxi-Y_Mini),
            size=werte$avg_gult,
            colour = werte$kern_uml,
            alpha = 1/100 ), 
geom="point",
scale_size_area(max_size = 30)
) +
geom_text(data=subset(werte, avg_gult > 1000),
aes(x=(xy$x + abs(X_Mini) ) * 150 / (X_Maxi-X_Mini),
y=(xy$y + abs(Y_Mini) ) * 150  / (Y_Maxi-Y_Mini))
aes(label=werte$Gemeinde))
p 
         x      y   avg_gult        Gemeinde    kern_uml
1   -0.230  1.720   559     Aeugst am Albis     U
2   -0.534  1.018   2595    Affoltern am Albis  U
3   -0.182  1.546   1395    Bonstetten          U
4   -0.590  1.194   1017    Hausen am Albis     0
5   -0.240  1.443   988     Hedingen            U
6   0.810   0.169   312     Kappel am Albis     0
7   -0.430  0.915   526     Knonau              U
8   -0.517  0.484   202     Maschwanden         0
etc.

X_Maxi <- 3.5
X_Mini <- -4.5

Y_Maxi <- 3.5
Y_Mini <- -4.5
xyavg_gult Gemeinde kern_uml
1-0.230 1.720 559美国阿尔比斯大学
2-0.534 1.018 2595阿尔比斯大学
3-0.182 1.546 1395 Bonstetten U
4-0.590 1.194 1017 Hausen am Albis 0
5-0.240 1.443 988赫丁根U
6 0.810 0.169 312卡佩尔阿尔比斯0
7-0.4300.915 526克诺努U
8-0.517 0.484 202马斯切万登0
等

X_Maxi由于所有值都出现在
werte
中,因此可以删除
werte$
xy$
的所有实例

其次,在
geom_text
中使用两个
aes
。将所有功能整合到一个aes中,它将工作:


库(ggplot2)
第1000页),
aes(x=(x+abs(x_Mini))*150/(x_Maxi-x_Mini),
y=(y+abs(y_Mini))*150/(y_Maxi-y_Mini),
标签=Gemeinde)
P

什么是
xy
?另一个数据帧?@Sven Hohenstein:没错。我建议提供
werte
xy
。一般来说,我认为
ggplot
data
参数(例如
data=werte
)中同时提供这两个数据帧,并且在
aes
中提供来自另一个(或出于同样原因)数据帧的向量时,我觉得
ggplot
不是很满意,使用
$
(例如
xy$x
)。可能是口味的问题,但我倾向于在将数据插入
ggplot
之前准备数据(例如,子集、聚合)。我们仍然不知道“xy”是什么样子。请提供所有必要的数据。特别是,请检查dput
。谢谢。对不起,我忘了说我现在把“xy”和“werte”合并了。因此,“xy”列现在由“Werte”中的x和y列显示感谢第一次输入,不幸的是,这也不起作用。R告诉我:>匹配错误(x,表格,nomatch=0L):尝试应用非函数