Мне кажется, что это должно быть очевидно ... все, что я пытаюсь сделать, это удалить ось x со дна моего графика и добавить его в начало.Ввод оси x в верхней части диаграммы ggplot2
Вот пример воспроизводимости. Данные плюс код, чтобы сделать следующий график:
library(reshape2)
library(ggplot2)
data(mtcars)
dat <- with(mtcars, data.frame(mpg, cyl, disp, hp, wt, gear))
cor.matrix <- round(cor(dat, use = "pairwise.complete.obs", method = "spearman"), digits = 2)
diag(cor.matrix)<-NA
cor.dat <- melt(cor.matrix)
cor.dat <- data.frame(cor.dat)
cor.dat <- cor.dat[complete.cases(cor.dat),]
ggplot(cor.dat, aes(Var2, Var1, fill = value)) +
geom_tile(colour="gray90", size=1.5, stat="identity") +
geom_text(data=cor.dat, aes(Var2, Var1, label = value), color="black", size=rel(4.5)) +
scale_fill_gradient(low = "white", high = "dodgerblue", space = "Lab", na.value = "gray90", guide = "colourbar") +
scale_x_discrete(expand = c(0, 0)) +
scale_y_discrete(expand = c(0, 0)) +
xlab("") +
ylab("") +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_rect(fill=NA,color="gray90", size=0.5, linetype="solid"),
axis.line = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill="gray90"),
plot.background = element_rect(fill="gray90"),
legend.position = "none",
axis.text = element_text(color="black", size=14))
Но что я пытаюсь произвести IS-то кажется, что это должно быть очевидно (например, это очень легко сделать в базовой-R) , но мне не удалось найти то, что я ищу в ggplot2.
Оси в ggplot не столь гибкий как в базе R. Для вашего примера вы не используете какие-либо компоненты оси, кроме меток. Я бы сказал, что лучше всего не рисовать ось, а просто использовать 'geom_text', чтобы поместить метки там, где вы хотите. – Gregor
Перемещение оси X затруднено, но это возможно с помощью функций ggplot_gtable и ggplot_build. Эти функции «замышляют» ggplot, но вместо экрана делают так называемые «grob» -объекты, которые представляют визуальные элементы (поле, линия, сетка и т. Д.), Но на другом уровне, чем объекты ggplot (шкалы , темы, эстетика и т. д.). Вы можете манипулировать гвоздями по своему усмотрению, обменивать их, изменять их размер и т. Д. – MrGumble
Если вы не автоматизируете это, вы можете просто хотеть, чтобы фигура затем отредактировала его после факта. Потребуется несколько секунд, чтобы переместить ось в иллюстратор или inkscape. – Minnow