2012-07-22 30 views
3

我问了一个关于在ggplot2中创建气泡图的问题here如何解释气泡图的比例尺和绘制负数的scale_area

我的后续问题是:

1)我怎么interprete的scale_size的传奇?

2)小点(标记为10)是否意味着数据可以是5-10的任何值?如果特定点的数据为8,那么scale_area函数在将数据点显示为图表上的点大小10之前是否将数据点更改为10。

3)有没有办法在ggplot气泡图上绘制负数?某些软件可能会使负面数据变成彩色泡泡。

4)我试图合并scale_area和scale_alpha,但图例显示了2个比例尺。我只想要一个组合的。我怎么做?

ggplot(dataset, aes(x = N, y = PctCens, size = BiasAM, alpha=BiasAM ,label = NULL)) + 
geom_point(shape = 16) + 
scale_area(to = 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,ncol=2) + 
theme_bw()+ 
opts(
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), 
axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12)) 

enter image description here

+1

这是一个连续的缩放比例,所以你可以用解释连续的x或y轴的方式来解释它。图例中显示的点与x/y轴上的轴刻度标记相同。 – joran 2012-07-22 22:55:17

+0

谢谢乔兰。我也添加了一些问题。 – Amateur 2012-07-23 00:10:00

+2

至于负值,您可以将绝对值绘制为圆的大小,然后使用双极性色阶,请参见[scale_gradient2]上的示例(http://had.co.nz/ggplot2/scale_gradient2.html )页面。 – 2012-07-23 12:28:50

回答

2

这里是我结束了我解决问题,在气泡图负数。

原始的BiasAM(称为OrgBiasAM)变量具有负数,所以我拿它的绝对值并创建了一个名为BiasAM的新变量,我在上面的代码中使用了这个变量。到了正数和负数区分,我做了使用ifelse语句称为BiasAMCat一个新的分类变量

数据集$ BiasAMCat < -ifelse(数据集$ OrgBiasMA < 0, '实', '积极')

的修改后的代码是现在:

ggplot(dataset, aes(x = N, y = PctCens, size = BiasAM, colour=factor(BiasAMCat) ,label =  NULL)) + 
    geom_point(shape = 16) + 
    scale_area(to = c(1, 10), breaks = c(0, 10, 30, 50, 70, 100)) + 
    scale_colour_manual(name=NULL, values=c('grey','black')) + # for bw printing 
    scale_x_continuous("Sample size", limits = c(0, 100)) + 
    scale_y_continuous("Percent censored", limits = c(0, 100)) + 
    facet_wrap(~Method,ncol=2) + 
    theme_bw()+ 
    opts(
    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), 
    axis.title.y=theme_text(face='bold',angle=90, vjust=0.2,size =12)) 

注意:如果你喜欢的渐变色,你可以使用color_gradient安迪W¯¯而不是scale_colour_manual的建议。