Wygenerowałem prosty wykres w R (wersja R wersja 3.0.1 (2013-05-16)) przy użyciu ggplot2
(wersja 0.9.3.1), który pokazuje współczynniki korelacji dla zestawu danych. Obecnie pasek koloru legendy po prawej stronie wykresu stanowi ułamek całego rozmiaru wykresu.Jak mogę uczynić legendę w ggplot2 taką samą wysokością jak mój wykres?
Chciałbym, aby pasek koloru legendy miał taką samą wysokość jak działka. Pomyślałem, że mógłbym użyć do tego celu legend.key.height
, ale odkryłem, że tak nie jest. Zbadałem funkcję unit
paczka i stwierdziłem, że tam było kilka znormalizowanych jednostek, ale kiedy próbowałem je (unit(1, "npc")
), pasek kolorów był zbyt wysoki i wyszedł ze strony.
Jak ustawić legendę na takiej samej wysokości, jak sam wykres?
Pełną samowystarczalne przykładem jest poniżej:
# Load the needed libraries
library(ggplot2)
library(grid)
library(scales)
library(reshape2)
# Generate a collection of sample data
variables = c("Var1", "Var2", "Var3")
data = matrix(runif(9, -1, 1), 3, 3)
diag(data) = 1
colnames(data) = variables
rownames(data) = variables
# Generate the plot
corrs = data
ggplot(melt(corrs), aes(x = Var1, y = Var2, fill = value)) +
geom_tile() +
geom_text(parse = TRUE, aes(label = sprintf("%.2f", value)), size = 3, color = "white") +
theme_bw() +
theme(panel.border = element_blank(),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
aspect.ratio = 1,
legend.position = "right",
legend.key.height = unit(1, "inch")) +
labs(x = "", y = "", fill = "", title = "Correlation Coefficients") +
scale_fill_gradient2(limits = c(-1, 1), expand = c(0, 0),
low = muted("red"),
mid = "black",
high = muted("blue"))
proszę pisać minimalny samodzielne powtarzalne przykład – baptiste
Zrobi wkrótce .... –
Ok, pytanie edytowany mieć pełny runnable przykład –