삭제 I는 다음 데이터 프레임을 가지고 사실ggplot2 연속 색상 및 전설
df
zone X Y Value
1 604000 2673000 522
1 612000 2643000 524
. . . .
. . . .
615 604000 2673000 698
난 (615 개) 영역, X 및 Y는 램버트 좌표 값이 비이다되어있다한다. 내 영역이 프랑스를 대표하고 내가 그들을 플롯하려고 :
mi <- 300
ma <- 1900
df$val <- cut(df$Sim, breaks=seq(mi,ma,100),
labels = paste("(", format(seq(mi,ma,100)[1:(length(seq(mi,ma,100))-1)]),
", ", format(seq(mi,ma,100)[-1]), "]", sep = ""))
breaks <- unique(bincol(df$Sim,"green","yellow","red"))
breaks <- breaks[order(unique(df$val))]
p <- ggplot(data =df, aes(x=X, y=Y))
p <- (p
+ theme_bw()
+ coord_equal()
+ geom_tile(aes(fill=val))
+ scale_colour_manual("mm", values = breaks)
+ geom_path(data = polfrance, colour = 'black',
aes(x = long, y = lat, group = group))
+ geom_path(data = sympzones, colour = 'grey40',
aes(x = long, y = lat, group = group))
)
p <- (p + scale_y_continuous(limits=c(1580000,2730000),
breaks=seq(1600000,2700000, 200000),
labels= seq(1600,2700,200), expand=c(0,0))
+ scale_x_continuous(limits=c(0,1250000),
breaks= seq(0,1250000, 400000),
labels= seq(0,1250, 400), expand=c(0,0))
+ xlab("X Lambert [km]")
+ ylab("Y Lambert [km]")
)
나는 내 영역의 윤곽을 그리는 sympzones 및 polfrance를 사용합니다.
및
bincol <- function(x,low,medium,high) {
breaks <- function(x) pretty(range(x), n = nclass.Sturges(x), min.n = 1)
colfunc <- colorRampPalette(c(low, medium, high))
binned <- cut(x,breaks(x))
res <- colfunc(length(unique(binned)))[as.integer(binned)]
names(res) <- as.character(binned)
res
}
값은 300에서 1900이며, 이것은 내가 얻을 것입니다 :
나는 전설을 변경할 수 없습니다 :
I은 문제가 있다면 이것은 geom_file의 범례이며 scale_colour_manual을 고려하지 않습니다. 그래서 이것은 오름차순이 아니라 좋은 제목 (나는 "mm"을 원한다)이 아니라 좋은 색이 아닌 것입니다.
정말 명확한 지 모르겠지만 ... 누군가 나를 도울 수 있습니까?
편집 : 나는 그에서 영감을했다 : easiest way to discretize continuous scales for ggplot2 color scales?
난 당신이 혼란 색을하고 채울 수있다 생각합니다. 'geom_tile (...) '에'color = ...'를 지정하면 원하는 색상이 아닌 * border color *가 지정됩니다. 그것이 당신에게 "작은 사각형이 많이있는 이유"입니다. 전설을 재정렬하는 것은 조금 더 복잡합니다. 데이터 세트 (지도 포함)를 업로드하고 링크를 제공하면 내가 보여줄 수 있습니다. – jlhoward
'breaks - breaks [order (labels, decline = TRUE)]] 및' 'labels <- labels [order (labels, decline = TRUE)]에서'감소 = FALSE'를 설정하면 범례 레이블의 순서를 다음과 같이 설정해야합니다. 오름차순 – OdeToMyFiddle
진실, 나는 그것을 바꿨다. 그리고 나의 새로운 문제는 내가 전설 (이름, 색, 순서)을 바꿀 수 없다는 것이다. jlhoward, 링크를 제공한다는 것은 무엇을 의미합니까? – Chika