【问题标题】:how to have multple labels in ggplot2 for bubble plot如何在ggplot2中有多个标签用于气泡图
【发布时间】:2014-03-23 23:27:16
【问题描述】:

如果我的问题太简单或太愚蠢,请原谅我,我刚刚开始研究 R。我已经搜索并尝试了很多次,但我无法拥有多个标签。 这是我的代码的样子:

datato<-read.table("forS.txt",header=TRUE)

g<-ggplot(datato)

g+
geom_point(aes(x=Point1,y=Alphabets,size=D1),fill="cyan",shape=21)+
geom_point(aes(x=Point2,y=Alphabets,size=D2),fill="gold2",shape=21)+
geom_point(aes(x=Point3,y=Alphabets,size=D3),fill="lightpink4",shape=21)+
scale_size(range = c(0, 20),name="") + theme(axis.text.x = element_text(size =    15,face="bold"),axis.text.y = element_text(size = 15,face="bold"))+   
xlab("Numbers") + ylab("Alphabets Freq")+ggtitle("Bubble Chart")+
scale_x_continuous(limits = c(1, 15))+
scale_shape_manual(values=1:3, labels = c("DDD", "EEE", "FFF"))

我正在用 D2 和 D3 对 D1 和字母等进行绘图。我需要一个漂亮的气泡图。但最后,我在右手尺寸上获得了lightpink4 的标签,默认情况下它会覆盖以前的标签。 但我想在右侧显示 D1 为青色,D2 为金色 2,D3 为浅粉色 4。 不知道怎么用:scale_shape_manual

请帮助我理解这一点。

 Alphabets  D1  D2  D3  Point1  Point2  Point3
A   0.094   0.073   0.11    1   2   3


B   0.019   0.08    0.09    1   2   3

C   0.086   0.059   0.05    1   2   3

D   0.03    0.021   0.09    1   2   3

【问题讨论】:

    标签: r ggplot2 bubble-chart


    【解决方案1】:
    • 将您的数据重新调整为长格式。 ggplot2 更有用
    • 你想要colour 而不是fill
    • 你想要scale_colour_manual 而不是scale_shape_manual

    这应该可行:

    library(ggplot2)
    library(reshape2)
    
    dataset <- data.frame(
      Alphabets = runif(18), 
      D1 = runif(6), 
      D2 = runif(6), 
      D3 = runif(6)
    )
    
    molten <- melt(
      dataset, 
      id.vars = "Alphabets", 
      measure.vars = c("D1", "D2", "D3")
    )
    
    
    ggplot(molten, aes(x = variable, y = Alphabets, size = value, colour = variable)) +
      geom_point() +
      scale_colour_manual(values = c("D1" = "cyan", "D2" = "gold2", "D3" = "lightpink4"))
    

    【讨论】:

    • 感谢您的帮助。我看到了很多melt 的帖子,但并没有从中得到太多的理解。这是什么(下):这是在做什么?? dataset &lt;- data.frame( Alphabets = runif(18), D1 = runif(6), D2 = runif(6), D3 = runif(6) )
    • 这只是生成一些示例数据,因为您没有提供任何数据。
    • @rawr 嗨.. 我在将示例数据放在顶部时遇到了麻烦,我最后将示例数据放在了上面。字母等。抱歉给您带来了困惑。
    • @Thierry 这就像一个魅力。我明白了,而不是迭代 geom_point(aes(x=Point1,y=Alphabets,size=D1),fill="cyan",shape=21)+ 您只需使用一个命令 geom_point 它就可以处理所有气泡.. 如何是这样吗?
    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多