Joh*_*nny 6 r scientific-notation ggplot2
我正在尝试ggplot使用以下命令绘制一些测试数据(在本文末尾显示):
options(scipen=20)
ggplot(testData,aes(x=Group.1, y=x), format(scientific=FALSE)) +
scale_x_discrete(name="Test", formatter=comma) + geom_bar()
Run Code Online (Sandbox Code Playgroud)
该图生成得足够好,但x轴是科学记数法(如在测试数据中),我将如何以十进制显示它?(如命令所示,我已经尝试过scipen选项和各种格式化程序选项 - 如本网站其他帖子所示)
我的测试数据:
> str(testData)
'data.frame': 5 obs. of 2 variables:
$ Group.1: Factor w/ 5 levels "(1.3e+03,1.5e+03]",..: 1 2 3 4 5
$ x : num 80000 94000 86000 112000 98000
> testData
Group.1 x
1 (1.3e+03,1.5e+03] 80000
2 (1.5e+03,1.7e+03] 94000
3 (1.7e+03,1.9e+03] 86000
4 (1.9e+03,2.1e+03] 112000
5 (2.1e+03,2.3e+03] 98000
> dput(testData)
structure(list(Group.1 = structure(1:5, .Label = c("(1.3e+03,1.5e+03]",
"(1.5e+03,1.7e+03]", "(1.7e+03,1.9e+03]", "(1.9e+03,2.1e+03]",
"(2.1e+03,2.3e+03]"), class = "factor"), x = c(80000, 94000,
86000, 112000, 98000)), .Names = c("Group.1", "x"), row.names = c(NA,
-5L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
testData的生成:
testData <- aggregate(as.numeric(as.character(housing7$PRICE)),
by=list(cut(as.numeric(as.character(housing7$SIZE)),
breaks=5)), FUN=mean)
Run Code Online (Sandbox Code Playgroud)
一旦您的因子的标签以科学记数法存储,就不容易回到正常的表示法.
由于您曾经cut创建此因子,因此可以使用dig.lab参数更改标签中使用的位数.例如:
testData <- aggregate(as.numeric(as.character(housing7$PRICE)),
by=list(cut(as.numeric(as.character(housing7$SIZE)), breaks=5,dig.lab=6)), FUN=mean)
Run Code Online (Sandbox Code Playgroud)