Ho generato una trama semplice in R (versione R versione 3.0.1 (2013-05-16)) utilizzando ggplot2
(versione 0.9.3.1) che mostra i coefficienti di correlazione per un insieme di dati. Attualmente, la barra colori della legenda sul lato destro del grafico è una frazione dell'intera dimensione del grafico.Come posso rendere la legenda in ggplot2 della stessa altezza del mio plot?
Vorrei che la barra dei colori della legenda fosse uguale all'altezza della trama. Ho pensato che avrei potuto usare lo legend.key.height
per farlo, ma ho scoperto che non è il caso. Ho studiato la funzione unit
del pacchettoe ho scoperto che c'erano alcune unità normalizzate, ma quando le ho provate (unit(1, "npc")
), la barra dei colori era troppo alta e usciva dalla pagina.
Come si può rendere la legenda della stessa altezza della trama stessa?
Un auto piena conteneva esempio è qui sotto:
# 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"))
prega di inviare un minimo esempio riproducibile autonomo – baptiste
Will fare poco .... –
Ok, domanda a cura di avere un esempio eseguibile completo –