首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ggplot更改轴上数字的格式?

如何使用ggplot更改轴上数字的格式?
EN

Stack Overflow用户
提问于 2012-07-23 17:33:09
回答 5查看 163.8K关注 0票数 152

我正在使用R和ggplot来绘制一些数据的散点图,除了y轴上的数字是以计算机样式的指数格式输出的,即4e+05,5e+05等。这对我来说是不可接受的,所以我想让它显示它们为500,000,400,000,等等。获得适当的指数表示法也是可以接受的。

该图的代码如下:

代码语言:javascript
运行
复制
p <- ggplot(valids, aes(x=Test, y=Values)) +
  geom_point(position="jitter") +
  facet_grid(. ~ Facet) +
  scale_y_continuous(name="Fluorescent intensity/arbitrary units") +
  scale_x_discrete(name="Test repeat") +
  stat_summary(fun.ymin=median, fun.ymax=median, fun.y=median, geom="crossbar")

任何帮助都非常感谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-06-16 18:48:28

我还发现了另一种方法,在轴上给出适当的‘x10(上标)5’符号。我把它贴在这里,希望它能对一些人有用。我的代码是从here得到的,所以我没有声称这是功劳,这理所当然地属于Brian Diggs。

代码语言:javascript
运行
复制
fancy_scientific <- function(l) {
     # turn in to character string in scientific notation
     l <- format(l, scientific = TRUE)
     # quote the part before the exponent to keep all the digits
     l <- gsub("^(.*)e", "'\\1'e", l)
     # turn the 'e+' into plotmath format
     l <- gsub("e", "%*%10^", l)
     # return this as an expression
     parse(text=l)
}

然后,您可以将其用作

代码语言:javascript
运行
复制
ggplot(data=df, aes(x=x, y=y)) +
   geom_point() +
   scale_y_continuous(labels=fancy_scientific) 
票数 74
EN

Stack Overflow用户

发布于 2012-07-23 19:41:26

另一种方法是使用package scales将轴记号标签格式化为逗号,然后添加

代码语言:javascript
运行
复制
 scale_y_continuous(name="Fluorescent intensity/arbitrary units", labels = comma)

添加到您的ggplot语句。

如果您不想加载包,请使用:

代码语言:javascript
运行
复制
scale_y_continuous(name="Fluorescent intensity/arbitrary units", labels = scales::comma)
票数 149
EN

Stack Overflow用户

发布于 2012-07-23 18:26:27

代码语言:javascript
运行
复制
x <- rnorm(10) * 100000
y <- seq(0, 1, length = 10)
p <- qplot(x, y)
library(scales)
p + scale_x_continuous(labels = comma)
票数 44
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11610377

复制
相关文章

相似问题

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