作为一个新的ggplot2用户,我有点失去了可能性,并努力在网上找到一个简单的答案,我认为是一个简单的问题.
我想在同一张纸上显示来自ggplot2的多个图,但是知道这些图来自for循环.
下面的例子没有编译,只是为了说明:
for(i in c(1:n)){
for(j in c(1:m)){
.......... # some data production
p <- ggplot(df.all) + geom_bar(aes_string(x=class.names[i],fill=var.names[j])
}}
Run Code Online (Sandbox Code Playgroud)
在这里,p被覆盖了,但是我希望有一个矩阵或一个列表,我可以将所有p放在它们生成的位置,然后像一个简单的函数,如
display_in_a_grid(list_of_ggplot_plots)
Run Code Online (Sandbox Code Playgroud)
但据我所知,我无法制作一个绘图矩阵列表,也无法找到只接受一个参数输入的函数.
关于我看过的事情:
包gridExtra中的"arrangeGrob"不起作用,因为它需要每个绘图的显式名称(例如:p1,p2,p3,...),如http://code.google.com/p/gridextra/wiki/ arrangeGrob
ggplot2的"facet"方法不适合我的数据集的组织(或相反:p)
你有一个简单的方法来管理这个吗?
谢谢,
弗朗索瓦
如何调整我的Y轴以忽略异常值,就像在这篇文章中一样,但是在一个更具挑战性的情况下,我有4个箱图和"自由刻面"布局?
p < - ggplot(molten.DF,aes(x = class,y = SOC,fill = class))+ geom_boxplot()+ facet_grid(layer~.,scales ="free",space ="free")
正如您在我的图中所看到的,考虑Y轴范围内的异常值会使框更难以阅读.如果结果中仍然可以看到一些异常值,那就不重要了,但我想真正关注这些方块!

我试图用R²值和重要性编码来注释一个图,但我不能*作为符号而不是作为并置运算符传递.
我试过了?plot.math,这是我尝试过的
plot(1:10,1:10)
text(6,4,expression(R^2==8))
text(6,4,expression(R^2==8^{**}))
Error: unexpected '^' in "text(6,4,expression(R^2==8^{**"
Run Code Online (Sandbox Code Playgroud) 是否可以使用包ggplot2中的geom_ribbon,但是范围是水平绘制而不是垂直绘制.如果"geom_ribbon"提出选项xmin/xmax,这将是微不足道的,但事实并非如此.
这是我的数据,用于测试的简化绘图功能和我获得的图.所以在这个例子中,我希望垂直显示"深度"轴.
prof <- read.table(text = " depth prop mean error
1 5 FALSE 2.12 0.035
2 15 FALSE 2.06 0.035
3 25 FALSE 1.54 0.035
4 35 FALSE 0.92 0.033
5 45 FALSE 0.71 0.028
6 55 FALSE 0.60 0.026
7 65 FALSE 0.54 0.024
8 75 FALSE 0.49 0.023
9 85 FALSE 0.46 0.022
10 95 FALSE 0.43 0.022
11 105 FALSE 0.41 0.022
12 115 FALSE 0.39 0.021
13 5 TRUE 2.18 0.061
14 15 TRUE 2.11 …Run Code Online (Sandbox Code Playgroud) 如何制作代表我的图表中绘制的所有曲线的图例?目前,为第一层生成自动图例(基于"颜色"美学),而在该图例中未包含另一层(表示所有观察中"价格"变量密度的黑色曲线).
我认为我的问题肯定来自于对ggplot包的概念的不完全理解.
ggplot(diamonds) +
geom_density(aes(x = price, y = ..density.., colour = cut)) +
geom_density(aes(x = price,y = ..density..))
Run Code Online (Sandbox Code Playgroud)

在土壤测绘的框架中,我需要总结不确定数量的栅格.我尝试使用'raster'包和'do.call'函数来完成它.但是,如果'sum'函数可以总计多个栅格,则使用do.call执行相同的操作会导致错误.我究竟做错了什么 ?
library(raster)
r1 <- raster(ncol=10, nrow=10) # dataset for test
values(r1) <- runif(ncell(r1))
r2 <- raster(ncol=10, nrow=10)
values(r2) <- runif(ncell(r2))
r3 <- raster(ncol=10, nrow=10)
values(r3) <- runif(ncell(r3))
sum(r1,r2,r3) # works nice
do.call(sum,list(r1,r2,r3))
##Erreur dans as.character(sys.call()[[1L]]) :
##cannot coerce type 'builtin' to vector of type 'character'
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助,
弗朗索瓦
我必须写一份文件,说明书非常严格.所有数字(轴标签,刻度标签,图例)内的文字大小必须为7pt.由于某些原因,我使用基本图形包,不能使用额外的包,如ggplot2.在"graphics"(?par)的选项中,我只看到此cex参数和派生词允许相对于默认大小修复文本大小.
R graphics的默认字体大小是多少?
Possible Duplicate:
How to extract the fill colours from a ggplot object?
In an arbitrary ggplot plot, say
p <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
有没有办法提取所用颜色的代码(即我们用命令修改的名为"values"的变量
p + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
Run Code Online (Sandbox Code Playgroud)
)?
我想获得使用的颜色,以便只修改一个.
谢谢,
弗朗索瓦
我想在n轴标签内一起使用一个变量(这里是矢量元素"type")和一个包含上标(这里是m ^ 2)的单元.
data <- list(houses = data.frame(surface = c(450, 320, 280),
price = c(12, 14, 6)),
flats = data.frame(surface = c(45, 89, 63),
price = c(4, 6, 9)))
Run Code Online (Sandbox Code Playgroud)
我用表达式实现显示"m ^ 2",
for (type in c('houses', 'flats')){
p <- ggplot(aes(x = surface, y = price), data = data[[type]]) +
geom_point() +
xlab(expression(paste('surface of this type /', m^{2})))
}
p
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在标签中添加变量时,以下内容当然不起作用:
for (type in c('houses', 'flats')){
p <- ggplot(aes(x = surface, y = price), data = data[[type]]) +
geom_point() +
xlab(expression(paste('surface …Run Code Online (Sandbox Code Playgroud) 你能告诉我是否可以制作一个条形图,其条形高度归一化为 1,但条形宽度与每个 bin 中的元素数量成正比。
\n\n示例:这个图
\n\nggplot(mtcars, aes(x=factor(cyl), fill=factor(vs))) + geom_bar(position="fill")\nRun Code Online (Sandbox Code Playgroud)\n\n然后使 3 个条形的宽度与
\n\ntable(factor(mtcars$cyl))\nRun Code Online (Sandbox Code Playgroud)\n\nposition_fill() 中有一个“width”参数,但它必须是一个常量,不是吗?
\n\n谢谢你,
\n\n弗朗西斯·xc3·xa7ois
\n\n编辑 :
\n\n我进一步尝试,并收到消息:“position_fill 需要恒定宽度”
\n\n所以我想得到我想要得到的东西是不可能的,至少使用 geom_bar 是不可能的。
\n这是我的问题:
如何找到数字落在的直方图箱的索引?
在Matlab中,解决方案很简单.HISTC完成这项工作:
[counts,bin] = histc(data,edges)
Run Code Online (Sandbox Code Playgroud)
"bin"正是我要找的.
但我在R工作,R的hist功能不提出功能性.我想我可以用一些代码来管理(使用一些东西作为min和<),但是因为我需要为很多数字做这些,我想找到一个更优雅的解决方案.
由于我对R不是很有经验,我希望可能存在一个棘手的解决方案,以另一种方式解决问题.