首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggplot2中的cex等效项

ggplot2中的cex等效项
EN

Stack Overflow用户
提问于 2010-12-25 04:12:07
回答 3查看 20.3K关注 0票数 16

我终于开始了解Hadley Wickham令人印象深刻的ggplot2包,并且正在阅读他的书。

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

我使用qplot快速创建了一个文本散点图。但是我不能快速调整尺寸。下面是一个愚蠢的代码示例:

代码语言:javascript
复制
data(state)
qplot(Income,Population,data=as.data.frame(state.x77),geom=c("smooth","text"),method="lm",label=state.abb)

而在过去,我会这样做:

代码语言:javascript
复制
plot(xlim=range(Income),ylim=range(Population),data=state.x77,type="n")
text(Income,Population,state.abb,data=state.x77, cex=.5)

如果我想要将默认文本大小减半(哦,而且我必须手动进行线性回归,并添加abline()以获得回归行--通过ggplot2将所有这些都做得很好)。

我知道我可以通过size添加一个大小调整,但这不是我习惯的相对大小调整。哈德利在推特上告诉我,尺寸是以毫米为单位的,这对我来说并不完全直观。由于我经常调整绘图的大小,无论是在R中还是在LaTeX中,绝对比例对我来说都不是很有用。

我一定是漏掉了一些非常简单的东西。那是什么?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-25 05:38:59

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

以下是使用ggplot()命令的一种方法。

代码语言:javascript
复制
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)
票数 9
EN

Stack Overflow用户

发布于 2010-12-25 04:40:54

代码语言:javascript
复制
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关于想要点作为“标签”的说法可能是对的:

代码语言:javascript
复制
 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“,则使用默认大小,然后被覆盖(或者像本例中一样被覆盖)。把支票给蔡斯。(编辑:应制作大小为2.5)

Edit2:深入挖掘,但我找到了让ggplot2抛出一些默认值的方法:https://github.com/hadley/ggplot2/blob/master/R/geom-text.r

代码语言:javascript
复制
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)

一定有更好的办法...

票数 6
EN

Stack Overflow用户

发布于 2014-01-02 10:40:45

代码语言:javascript
复制
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))

Add cex inside aes将获得您想要的内容,引用自:

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

  1. http://docs.ggplot2.org/current/aes.html
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4528161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档