Я не могу найти решение для следующих проблем. Буду очень признателен за помощь!
Следующий код создает гистограммы с использованием фасета. Однако из-за «дополнительного пространства» ggplot2 в некоторых группах делает полосы намного шире, даже если я укажу ширину 0,1 или подобную. Меня это очень раздражает, потому что это выглядит очень непрофессионально. Я хочу, чтобы все столбцы выглядели одинаково (кроме заливки). Я надеюсь, что кто-нибудь может сказать мне, как это исправить.
Во-вторых, как я могу изменить порядок различных классов в фасетных окнах, чтобы порядок всегда был C1, C2... C5, M, F, All, где это применимо. Пробовал с упорядочиванием уровней фактора, но поскольку не все классы присутствуют в каждой части графа, не получилось, по крайней мере, я предполагаю, что причина в этом.
В-третьих, как уменьшить расстояние между стержнями? Так что весь график более сжат. Даже если я уменьшу изображение для экспорта, R уменьшит масштаб полос, но промежутки между полосами все равно огромны.
Я был бы признателен за отзыв для любого из этих ответов!
Мои данные: http://pastebin.com/embed_iframe.php?i=kNVnmcR1
Мой код:
library(dplyr)
library(gdata)
library(ggplot2)
library(directlabels)
library(scales)
all<-read.xls('all_auto_visual_c.xls')
all$station<-as.factor(all$station)
#all$group.new<-factor(all$group, levels=c('C. hyperboreus','C. glacialis','Special Calanus','M. longa','Pseudocalanus sp.','Copepoda'))
allp <- ggplot(data = all, aes(x=shortname2, y=perc_correct, group=group,fill=sample_size)) +
geom_bar(aes(fill=sample_size),stat="identity", position="dodge", width=0.1, colour="NA") + scale_fill_gradient("Sample size (n)",low="lightblue",high="navyblue")+
facet_wrap(group~station,ncol=2,scales="free_x")+
xlab("Species and stages") + ylab("Automatic identification and visual validation concur (%)") +
ggtitle("Visual validation of predictions") +
theme_bw() +
theme(plot.title = element_text(lineheight=.8, face="bold", size=20,vjust=1), axis.text.x = element_text(colour="grey20",size=12,angle=0,hjust=.5,vjust=.5,face="bold"), axis.text.y = element_text(colour="grey20",size=12,angle=0,hjust=1,vjust=0,face="bold"), axis.title.x = element_text(colour="grey20",size=15,angle=0,hjust=.5,vjust=0,face="bold"), axis.title.y = element_text(colour="grey20",size=15,angle=90,hjust=.5,vjust=1,face="bold"),legend.position="none", strip.text.x = element_text(size = 12, face="bold", colour = "black", angle = 0), strip.text.y = element_text(size = 12, face="bold", colour = "black"))
allp
#ggsave(allp, file="auto_visual_stackover.jpeg", height= 11, width= 8.5, dpi= 400,)
Текущий график, который нуждается в исправлении:
Большое спасибо!
geom_bar
,width
интерпретируется как доля расстояния между соседними стержнями. Возможно, вместо этого используйтеgeom_segment
, тогдаsize
будет интерпретироваться как абсолютное значение. Для 2 переупорядочивание уровней факторов — это способ сделать это. Для 3 увеличьтеwidth
, вы установили его на 0,1, поэтому вы указываете ggplot использовать только 10% пространства (или использоватьgeom_segment
). - person Gregor Thomas   schedule 12.05.2015