переверните оси ggplot на верхнюю и правую стороны, используя theme () - PullRequest
2 голосов
/ 20 июня 2019

Мне нужно перевернуть числа (и отметки) оси Y и оси X вправо и вверх соответственно (вместо того, где они сейчас находятся).И я хотел бы, чтобы они были внутри карты, а не снаружи.В конечном итоге это будет небольшая вставленная карта (без ключа или пространства белого поля) на другой более крупной карте.

Моя карта сейчас: enter image description here

Мой код:

baseInset = get_map(location=c(-160.8,18.5,-154.625,22.5), zoom=8, maptype="terrain")

mapInset<-ggmap(baseInset)

Inset <- mapInset  +
            geom_point(data=CoordInset, aes(x=-Long, y=Lat, fill=Type, shape=Type),
                                            color="black", cex=1.4) + 
            scale_fill_manual(values=c("red", "blue"), 
                              labels=c("Molokaiense (not geo-referenced)",
                                       "Oahuense (not geo-referenced)")) +
            scale_shape_manual(values = c(21,23), 
                               labels=c("Molokaiense (not geo-referenced)",
                                        "Oahuense (not geo-referenced)"))   +
            theme(panel.border = element_rect(fill=NA, colour = "black", size=1),
                 plot.margin = unit(c(0.3, 0.3, -1.7, -0.2), 'lines'), 
                 axis.line = element_blank(), 
                 axis.text.x = element_text(angle=45, hjust=0.9, vjust=2.2, size=8), 
                 axis.ticks.length=unit(-0.15,"cm"), 
                 axis.text.y = element_text(size=8, margin = margin(r = -18)))

Пример данных в CoordInset:

Long      Lat                           Type

1  155.2000 19.50000             Not geo-referenced
2  155.2000 19.51600             Not geo-referenced
3  155.3433 19.67571             Not geo-referenced
4  155.4000 19.80000             Not geo-referenced
5  155.4483 19.76015             Not geo-referenced
6  155.5000 19.90000             Not geo-referenced
7  155.5000 19.80000             Not geo-referenced
8  155.6000 20.00000             Not geo-referenced
9  155.6000 19.80000             Not geo-referenced

Я пытался добавить scale_y_continuous(position = "right") и scale_x_continuous(position = "top"), но получаю сообщение об ошибке:

Scale for 'y' is already present. Adding another scale for 'y', which will replace the existing scale.               
Scale for 'x' is already present. Adding another scale for 'x', which will replace the existing scale.

Есть ли способ сделать это с помощью theme ()?

Плохой результат:

enter image description here

...