2013-02-04 11 views
6

Jak mogę dodać klucza legendę na poniższym wykresieDodawanie klucza legendę do multi-histogramu działki w R

enter image description here

mogę zażyczyć sobie kluczową legendę gdzieś w prawym górnym rogu z dwa krótkie poziomy kolorowe paski, gdzie czerwony powinien brzmieć "Chirurgia plastyczna poszło nie tak", a niebieski powinien brzmieć "Niemcy".

Użyłem poniższy kod, żeby produkować działki:

bar2 <- read.table("div/ana-mut[...]/barriers-set-2.dat", sep=" ") 
bar2val <- c(bar2$V1, bar2$V2) 
bar3 <- read.table("div/ana-mut[...]/barriers-set-3.dat", sep=" ") 
bar3val <- c(bar3$V1, bar3$V2) 
p1 <- hist(subset(bar2val, bar2val < 30), breaks=30) 
p2 <- hist(subset(bar3val, bar3val < 30), breaks=30) 
plot(p1, col=rgb(1,0,0,8/9), main="Barrier distribution", xlab="Barrier [kcal/mol]", ylab="Mutant count") 
plot(p2, col=rgb(0,0,1,8/9), add=T) 

Wszelkie wskazówki będą bardzo mile widziane.

+1

kilka punktów. Najpierw proszę zadać pytanie [odtwarzalne] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Pokaż nam również, co wypróbowałeś. – csgillespie

Odpowiedz

15

Komenda legenda rade:

legend("topright", c("Germany", "Plastic"), col=c("blue", "red"), lwd=10) 

aby uzyskać dwa krótkie poziome paski koloru wystarczy użyć standardowej linii, ale zwiększenie grubości linii. Roland zauważył, można również użyć fill argumentu:

legend("topright", c("Germany", "Plastic"), fill=c("blue", "red")) 

Zobacz ?legend więcej szczegółów.

enter image description here

+1

Dla histogramu użyłbym parametru "wypełnij", aby narysować pola zamiast linii w legendzie. – Roland

+0

@Roland Dobra sprawa, dzięki. – csgillespie

+0

Dzięki csgillespie. To powinno wystarczyć dla moich potrzeb. – TMOTTM

2

tutaj jest alternatywnym rozwiązaniem (patrz poniżej kodu)

enter image description here

# some semi-random data … 
df <- structure(list(Germany = c(1L, 3L, 6L, 1L, 2L), Plastic = c(2L, 
5L, 4L, 2L, 3L)), .Names = c("Germany", "Plastic"), class = "data.frame", row.names = c(NA, 
-5L)) 

# Expand right side of clipping rect to make room for the legend 
par(xpd=T, mar=par()$mar+c(0,0,0,4)) 

# Graph data (transposing the matrix) using heat colors, 
# put 10% of the space between each bar, and make labels 
# smaller with horizontal y-axis labels 
barplot(t(df), main="Barrier distribution", xlab="Barrier [kcal/mol]", ylab="Mutant count", 
    col=c("blue", "red"), space=0.1, cex.axis=0.8, las=1, 
    names.arg=c("Mon","Tue","Wed","Thu","Fri"), cex=0.8) 

# Place the legend at (4,9) using blue and red 
legend(4, 9, names(df), lwd=4, col=c("blue", "red")) 

# Restore default clipping rect 
par(mar=c(5, 4, 4, 2) + 0.1) 
+0

@TMOTTM, Czy ta odpowiedź była w jakikolwiek sposób pomocna? –

Powiązane problemy