我試圖在繪圖區域之外的右下角放置水平圖例。ggplot:「size-robust」方式將水平圖例置於右下角
我意識到這是以前討論過的。然而,經過漫長的沮喪之後,我無法達到「體積健壯」的解決方案。
這裏有3個解決方案,我發現:
- 當我設置
legend.position
到bottom
:傳說是放置在 底部的中心,但我不能用它推到右側legend.justification
- 當我將
legend.position
設置爲c(1,0)
時:圖例被置於 的右下角。然而,這個傳說被放置在情節中。 - 當我添加
plot.margin
並將legend.position
進一步向下: 將圖例置於圖的右下角和外側。但是,當我更改繪圖區域的大小時,圖例的位置不再正確。
第三溶液的不正確的定位:
重現的代碼:
# Generate random data------
sample.n = 50
sample.data = data.frame(x = runif(sample.n,0,1), y = runif(sample.n,0,1), value = runif(sample.n,0,10))
# Plot ------
library(ggplot2)
# Margins are fine. And If I change the size of the plotting area, the legend will always be bottom- centered
# Problem: Can't push it to the right side
ggplot(sample.data, aes(x = x, y = y, color = value)) + geom_point() +
theme(legend.direction = "horizontal", legend.position = "bottom")
# Pushed to the bottom-right Successfully
# Problem: Legend inside the plot
ggplot(sample.data, aes(x = x, y = y, color = value)) + geom_point() +
theme(legend.direction = "horizontal",legend.position = c(1,0)) # Problem: inside plot
# Placed at the bottom-right corner outside the plot region
# Problem: If I change the size of the plotting region, the legend will not be cornred
ggplot(sample.data, aes(x = x, y = y, color = value)) + geom_point() +
theme(legend.direction = "horizontal", legend.position = c(0.9,-0.2),
plot.margin = unit(c(1, 1, 5, 1), "lines"))
主題,聯想的文檔:
legend.position傳說的位置( 「無」, 「左」, 「右」, 「底」, 「頂」,或兩個元素的數值向量)
legend.justification錨點內積 (「中心」或兩個元素的數值向量)的定位說明
我決定我要多大的數字是,然後調整傳說等 –
@RichardTelford我以前做的位置和它的工作。但是,我試圖爲多個數據集繪製相同的圖,每個數據集都有不同的大小。所以這個解決方案現在不適用。 – Deena