Как сделать мою ось клещей лицом Inwards в ggplot2
Я сделал barplot, используя ggplot2, и журнал, который мне нужно отправить, требует, чтобы ось тикала лицом внутрь.
Это текстовое представление моих данных (dput)
Mean.Inc.melt<-structure(list(Var1 = structure(c(1L, 2L, 1L, 2L, 1L, 2L), .Label = c("Harvest","Pre-Harvest"), class = "factor"), Var2 = structure(c(1L, 1L, 2L, 2L, 3L, 3L), .Label =c("Dip A", "Trip A", "Trip B"), class = "factor"), value = c(2, 34, 1, 36, 3, 46)), .Names =c("Var1", "Var2", "value"), row.names = c(NA, -6L), class = "data.frame")
Включая стандартную ошибку
SEM.Inc.melt<-structure(list(Var1 = structure(c(1L, 2L, 1L, 2L, 1L, 2L), .Label = c("Harvest", "Pre-Harvest"), class = "factor"), Var2 = structure(c(1L, 1L, 2L, 2L, 3L, 3L), .Label = c("Dip A", "Trip A", "Trip B"), class = "factor"), value = c(1, 12, 1, 2, 1, 6)), .Names = c("Var1", "Var2", "value"), row.names = c(NA, -6L), class = "data.frame")
Это script, который я использовал до сих пор, чтобы создать график:
ggplot(Mean.Inc.melt,aes(x=Var2,y=value,fill=Var1))+
geom_bar(stat='identity',position=position_dodge(),colour='black')+
scale_fill_manual(values=c('#000000','#FFFFFF'))+
geom_errorbar(aes(ymin=Mean.Inc.melt$value-SEM.Inc.melt$value,
ymax=Mean.Inc.melt$value+SEM.Inc.melt$value),width=.1,
position=position_dodge(.9))+
xlab('Treatment')+
ylab('Percentage Incidence (%)')+
ylim(0,60)+
scale_y_continuous(expand=c(0,0),limits=c(0,60))+
scale_x_discrete(expand=c(0,0))+
theme_bw()+
theme(axis.line=element_line(colour='black'),panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),panel.border=element_blank(),
panel.background=element_blank())+
geom_vline(xintercept=0)+theme(legend.position='none')
Я предполагаю, что дело в том, что кто-нибудь знает, есть ли способ заставить мою ось смотреть внутрь?
Ответы
Ответ 1
В то время как я не понимаю стремления журналов иметь метки на внутренней стороне, довольно просто добиться этого с помощью ggplot
.
Аргумент axis.ticks.length
для theme
позволяет установить длину меток. Если для этого параметра установлено отрицательное значение, отметки меток будут отображаться вовнутрь. Например (повторное решение Dennis Murphy здесь):
library(ggplot2)
library(grid)
ggplot(mtcars, aes(disp, mpg)) + geom_point() +
theme(axis.ticks.length=unit(-0.25, "cm"), axis.ticks.margin=unit(0.5, "cm"))
![enter image description here]()
Как и в приведенном выше примере, вам нужно также отрегулировать расположение меток ярлыков, axis.ticks.margin
.
Обратите внимание, что значение должно быть передано как объект unit
, для которого требуется пакет grid
(предварительно установленный с R).