ggplot2:如何手动调整scale_area

6
我已经制作了两个泡泡图,分别叫做beta和km。我想将这两个图并排比较,但是scale_area似乎不同,这使得基于气泡大小的视觉比较变得困难。
如果您注意到下面的图例,您会发现比例尺不同。我认为这是因为betaGSD5数据集中最高的BiasAM值约为64,而kmGSD5数据集中的值为100。
如何手动更改scale_area,使betaPlot的比例尺与kmPlot的比例尺相匹配?
此外,是否可以手动设置图例断点?而不是自动生成,可以像这样指定图例:
0-10, 10-30, 30-50, 50-70, 70-100, 100
betaGSD5数据:https://dl.dropbox.com/u/63947093/betaGSD5.csv kmGSD5数据:https://dl.dropbox.com/u/63947093/kmGSD5.csv 以下是beta图的代码。
betaPlot <- ggplot(betaGSD5, aes(N,PctCens,size=BiasAM,label=NULL)) +
  geom_point(colour="red", shape=16) +scale_area(to=c(1,10)) +
  xlab("Sample size") + ylab("Percent censored") +
  xlim(0,100)+ ylim(0,100) +
  theme_bw()+
  opts(
 #legend.position='none',
  panel.grid.minor = theme_blank(),
  panel.background = theme_blank(),
  axis.ticks = theme_blank(),
  axis.title.x=theme_text(face='bold',vjust=0.2, size =12), #size=15 #hjust:move     horizonal, vjust-move verticall
  axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12))
print(betaPlot)

在此输入图片描述

KM曲线绘制

kmPlot <- ggplot(kmGSD5, aes(N,PctCens,size=NewBiasAMpct,label=NULL)) +
    geom_point(colour="red", shape=16) +scale_area(to=c(1,10)) +
    xlab("Sample size") + ylab("Percent censored") +
    xlim(0,100)+ ylim(0,100) +
    theme_bw()+
    opts(
      #legend.position='none',
     panel.grid.minor = theme_blank(),
     panel.background = theme_blank(),
     axis.ticks = theme_blank(),
     axis.title.x=theme_text(face='bold',vjust=0.2, size =12), #size=15 #hjust:move       horizonal, vjust-move verticall
     axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12))

 print(kmPlot)

enter image description here


请查看 ?scale_area?continuous_scale - mnel
@mnel:我试过了。没有什么帮助。 - Amateur
@Amateur,哪些方面没有帮到你?你有什么不理解的地方吗? - Paul Hiemstra
抱歉,我的意思是我没有发现?scale_area 指令有用。 - Amateur
1个回答

10

如果你想要它们并排展示,那么非常容易。只需合并两个数据集并使用facet_wrap()

ggplot(dataset, aes(x = N, y = PctCens, size = BiasAM, label = NULL)) +
  geom_point(colour="red", shape = 16) + 
  scale_size_area(limits = c(1, 10), breaks = c(0, 10, 30, 50, 70, 100)) +
  scale_x_continuous("Sample size", limits = c(0, 100)) + 
  scale_y_continuous("Percent censored", limits = c(0, 100)) +
  facet_wrap(~ Method) + 
  theme_bw() +
  theme(
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.ticks = element_blank(),
    axis.title.x = element_text(face = 'bold', vjust = 0.2, size = 12),
    axis.title.y = element_text(face = 'bold', angle = 90, vjust = 0.2, size = 12)
  )

这里输入图片描述


这很棒,正是我所需要的。但是我在使用ggplot时遇到了一些问题,比如退化错误(尤其是图例中断)。是否有新版本的代码适用于新的ggplot? - Vinterwoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接