R 如何在气泡图中用不同颜色显示图例中的精确值

R 如何在气泡图中用不同颜色显示图例中的精确值,r,ggplot2,R,Ggplot2,我有以下数据: RW GA Freq 0 0 9 0 3 1 0 14 1 2 30 1 15 30 2 24 30 7 30 29 16 30 30 29 我想为这些数据生成一个气泡图,为此我编写了以下R脚本: df <- read.csv("/home/Desktop/data.csv") p <- ggplot(df, aes(x=RW,

我有以下数据:

RW    GA    Freq
0     0     9
0     3     1
0     14    1
2     30    1
15    30    2
24    30    7
30    29    16
30    30    29
我想为这些数据生成一个气泡图,为此我编写了以下R脚本:

df <- read.csv("/home/Desktop/data.csv")
p <- ggplot(df, aes(x=RW, y=GA, size=Freq)) + geom_point(alpha=0.7) + 
    scale_size(range = c(1, 10), name="Freq", limits=c(1,30), breaks=c(1,10,30))

df为了展开图例,您需要定义所需的中断,在本例中,我使用了
unique
函数来收集值列表

library(ggplot2)

df<-structure(list(RW = c(0L, 0L, 0L, 2L, 15L, 24L, 30L, 30L), 
                   GA = c(0L, 3L, 14L, 30L, 30L, 30L, 29L, 30L), 
                   Freq = c(9L, 1L, 1L, 1L, 2L, 7L, 16L, 29L)), 
              class = "data.frame", row.names = c(NA, -8L))

lbreaks<-sort(unique(df$Freq))

p <- ggplot(df, aes(x=RW, y=GA, size=Freq)) + geom_point(alpha=0.7) + 
  scale_size(range = c(1, 10), name="Freq", limits=c(1,30), breaks=lbreaks)
print(p)

谢谢是否可以给每个圆圈赋予不同的颜色?
ggplot(df, aes(x=RW, y=GA, size=Freq, color=as.factor(Freq))) + geom_point(alpha=0.7) + 
  scale_size(range = c(1, 10), name="Freq", limits=c(1,30), breaks=lbreaks) +
  scale_color_discrete(name="Freq", breaks=lbreaks)