Вот рекомендация из codeontrack.com , которая имеет хорошие примеры решений:
Вместо того, чтобы установить ширину div на 100%, установите ее в auto и убедитесь, что для параметра
& lt; div & gt;
установлено значение: block (по умолчанию для& lt; div & gt;
).
Использование aes_string
позволит вам передавать символьные строки в вашу функцию ggplot2, что позволяет вам программно изменить ее более легко:
my.plot = function(x, y, data)
{
p=ggplot(data, aes_string(x=x, y=y))+geom_bar(stat="identity")
print(p)
}
my.plot(x="xVar", y="yVar", data=dataTest)
[/g0]
my.plot(x="xVar", y="zVar", data=dataTest)
[/g1]
Используя ответ @ sebastian-c и другие источники, у меня есть функция, которая, я думаю, будет работать, и я хотел бы поделиться ею. Я думаю, что я вижу решение Хенрика, но похоже, что это больше, поскольку у меня есть 4 группы, 4 'x' категории и третья категория, связанная с временем (год, четверть, месяцы).
library(ggplot2)
### sample data ###
n=25
dataTest = data.frame(
xVar=sample(1:3, n, replace=TRUE),
yVar = rnorm(n, 5, 2),
zVar=rnorm(n, 5, .5),
brand=letters[1:5])
### function
my.plot = function(x, y, data, group=NULL)
{
p=ggplot(data, aes_string(x=x, y=y, fill=group))+
geom_bar(stat="identity")
# make a facet if group is not null
if(length(group)>0) {
facets = facet_wrap(formula(paste("~", group)))
p = p + facets
}
return(p)
}
Как насчет использования %+%
для обновления графиков вместо?
Пример:
library(ggplot2)
### sample data ###
n=25
dataTest = data.frame(
xVar=sample(1:3, n, replace=TRUE),
yVar = rnorm(n, 5, 2),
zVar=rnorm(n, 5, .5) )
p1 <- ggplot(data = dataTest, aes(x = xVar, y = yVar)) +
geom_bar(stat = "identity")
aes2 <- aes(x = xVar, y = zVar)
p2 <- p1 %+% aes2
p1:
[/g0]
p2:
[/g1]
РЕДАКТИРОВАТЬ
или как упомянуто @ sebastian-c, aes_string
plots <- function(x, y, data = dataTest) {
p1 <- ggplot(data = data, aes_string(x = x, y = y)) +
geom_bar(stat = "identity")
p1
}
plots('xVar','yVar')
plots('xVar','zVar')
РЕДАКТИРОВАТЬ 2: избили меня до удара: o
facet_wrap
? Я думаю, вы определенно захотите использовать %+%
, затем
– rawr
20 March 2014 в 22:42