0

如何为图例标签旁边的点着色?scale_color_manual 或 scale_fill_manual 不起作用。另外,如何将图例中的点更改为正方形?谢谢

set.seed(1)
library(ggplot2)
library(ggrepel)
df <- data.frame(n=runif(8),y=1:8,l=letters[1:8],col=palette.colors(8))

p_vol <- ggplot(df, aes(n, y, label = l)) +
  geom_point(aes(fill=l),color = df$col) +
  geom_text_repel(col=df$col)+theme_classic()
print(p_vol)

在此处输入图像描述

4

2 回答 2

1

您也可以尝试使用数据框中的颜色来启用fillaes()这里的代码,我使用了不同的颜色,因为我对你曾经拥有颜色的功能没有足够的了解palette.colors。using 也scale_fill_identity()直接从数据中的变量中获取颜色(在 中定义的那些fill)。这里的代码:

set.seed(1)
library(ggplot2)
library(ggrepel)
library(RColorBrewer)
df <- data.frame(n=runif(8),y=1:8,l=letters[1:8],col=rainbow(8))
#Plot
ggplot(df, aes(n, y, label = l,color=l,fill=col)) +
  geom_point() +
  geom_text_repel(show.legend = F)+theme_classic()+
  scale_fill_identity()

输出:

在此处输入图像描述

于 2020-09-23T16:07:06.680 回答
1

您将需要在审美调用中包含颜色参数geom_point(),设置color = l。然后您可以使用scale_color_manual来使用所需的颜色。

p_vol <- ggplot(df, aes(n, y, label = l)) +
  geom_point(aes(fill=l, color = l)) +
  geom_text_repel(col=df$col) +
  theme_classic() +
  scale_color_manual(values = df$col)
于 2020-09-23T16:00:40.940 回答