首页 文章

gxplot2中的cex等价物

提问于
浏览
14

我终于开始进入Hadley Wickham令人印象深刻的ggplot2套餐,并且正在努力完成他的书 .

在我的工作中,我经常使用文本标签显示散点图 . 这意味着 plot() 命令,后跟 text() . 我使用 cex 来非常快速地调整字体大小 .

我使用 qplot 非常快速地创建了一个文本散点图 . 但我可以't adjust the size fast. Here'是一个愚蠢的代码示例:

data(state)
qplot(Income,Population,data=as.data.frame(state.x77),geom=c("smooth","text"),method="lm",label=state.abb)

在过去,我会这样做:

plot(xlim=range(Income),ylim=range(Population),data=state.x77,type="n")
text(Income,Population,state.abb,data=state.x77, cex=.5)

如果我希望文本大小与我在默认值下看到的一半(哦,我必须手动进行线性回归并添加abline()以获得回归线 - 很高兴通过ggplot2一次性完成) .

我知道我可以添加尺寸调整大小,但它不是像我以前那样的相对大小调整 . 哈德利在推特上说我的尺寸是用毫米来衡量的,这对我来说并不完全直观 . 由于我经常调整绘图的大小,无论是在R还是在LaTeX中,绝对比例对我来说都没有用 .

我必须遗漏一些非常简单的东西 . 它是什么?

哦 - 而且我知道我还没有真正使用过强大的ggplot2命令 - 只是想先把简单的东西放下来 .

3 回答

  • 5

    我认为你要调整文本本身的大小,而不是x轴,对吗?

    这是使用 ggplot() 命令的方法 .

    ggplot(data = as.data.frame(state.x77), aes(x = Income, y = Population)) +
        geom_smooth(method = "lm", se = FALSE) +
        geom_text(aes(label = state.abb), size = 2.5)
    
  • 3
    qp <- qplot(Income, Population,data=as.data.frame(state.x77), 
               geom=c("smooth","text"),
               method="lm", 
               label=state.abb)
    qp + opts(axis.text.x = theme_text(size = 5))
    

    我认为Chase可能正确地将点作为“标签”:

    qp <- qplot(Income, Population,data=as.data.frame(state.x77),
                    geom="smooth",method="lm",label=state.abb)
        qp + geom_text(aes(label = state.abb), size = 2.5)
    

    如果在qplot的geom参数中给出“text”,则使用默认大小,然后被覆盖(或者在这种情况下被覆盖) . 给Chase支票 . (编辑:应该大小为2.5)

    编辑2:采取挖掘,但我找到了让ggplot2咳出一些默认值的方法:https://github.com/hadley/ggplot2/blob/master/R/geom-text.r

    GeomText$new()$geom$default_aes
    proto method (instantiated with ): function (.) 
    aes(colour = "black", size = 5, angle = 0, hjust = 0.5, vjust = 0.5, 
        alpha = 1)
    

    必须有一个更好的方式....

  • 7
    qp <- qplot(Income, Population,data=as.data.frame(state.x77),
                    geom="smooth",method="lm",label=state.abb)
        qp + geom_text(aes(label = state.abb, cex = 1.2))
    

    aes 内添加 cex 会得到你想要的,引自:

    aes创建一个未评估的表达式列表 . 此函数还执行部分名称匹配,将颜色转换为颜色,将旧样式R名称转换为ggplot名称(例如,pch为shape,cex为size)

相关问题