gxplot2中的cex等价物

时间:2010-12-24 20:12:07

标签: r ggplot2

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

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

我使用qplot非常快速地创建了一个文本散点图。但我无法快速调整大小。这是一个愚蠢的代码示例:

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 个答案:

答案 0 :(得分:7)

我认为您正在尝试调整文本本身的大小,而不是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)

答案 1 :(得分:5)

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))

我认为大通可能会把积分作为“标签”:

 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)

Edit2:挖掘但是我找到了让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)

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

答案 2 :(得分:3)

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))

cex内添加aes将获得您想要的内容,引自:

  

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

  1. http://docs.ggplot2.org/current/aes.html