Я пытаюсь построить 30 гистограмм из кадра данныхggplot2 несколько участков сохраняют старые участки
'data.frame': 569 obs. of 32 variables:
$ ID : int 842302 842517 84300903 84348301 84358402 843786 844359 84458202 844981 84501001 ...
$ Diag : Factor w/ 2 levels "B","M": 2 2 2 2 2 2 2 2 2 2 ...
$ Radius : num 5.1 5.84 5.59 3.24 5.76 ...
$ Text : num 2.41 4.13 4.94 4.74 3.33 ...
etc....
Я хочу, чтобы сгруппировать все атрибуты по Diag (клеветать или доброкачественным рак) и сохранить их в файл, как умножитель (30 отдельных гистограмм) вместе.
Но, когда я делаю это по-своему (итерация по столбцам), ggplot, похоже, как-то сохраняет старые данные, и он не изменяется в соответствии с текущим столбцом, если только я не делаю это вручную.
Это мой графический цикл, который пытается сохранить каждый участок в списке:
graph_att<-function(to=10){
plots<-vector("list",to)
for (i in 1:to){
dev.next()
ind<-i+2
a<-t[1,i] #data.frame with vertical lines I want in the histograms
g<-ggplot(dataNorm[,c(2,ind)], aes(dataNorm[,ind]))+geom_histogram(aes(fill=Diag),
position="identity", colour="#999999", alpha=0.8, binwidth = 0.25)+
geom_vline(xintercept = a) +
scale_fill_manual(values = c("#0072B2", "#E69F00"))
plots[[i]]<-g
rm(g) #trying to make sure its a new plot
}
return(plots)
}
И я использую функцию Multiplot из http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/ построить вместе. Но я получаю этот вывод, он только меняет вертикальную линию и сохраняет только одну гистограмму.
У меня также возникла идея создать еще один data.frame, и в каждом столбце укажите $ Diag и другие переменные, но не знаю, как их перебирать. Потому что я думал, что ggplot не имеет доступа к столбцам, которые я хочу.
Спасибо за любую помощь.
PS: Это то, что я получаю
'АЕС (DataNorm [, Ind])' не может работать из-за нестандартной оценки. Возможно, попробуйте 'aes_string (имена (dataNorm) [ind])'. Могут быть и другие проблемы. Предоставьте воспроизводимый пример, если вам нужна дополнительная помощь. – Roland
Огромное спасибо, Роланд, это блестяще! Он отлично работает, также он сохраняет xlabel как имя переменной, что является фантастическим! Большое спасибо. Вы хотите опубликовать его как правильный ответ, чтобы я мог нажать на него, чтобы ответить? –