2016-08-29 1 views
0

저는 각 카운티가 Obama에 대한 2012 투표의 비율로 채색되어있는 미국의 cloropleth지도를 만듭니다. 인구에 의한 카운티 오버레이의 불투명도를 변경하고 싶습니다. (수행 된 것과 비슷합니다. here). 나는 alpha = populationVariable을 geom_map aes에 추가하려고 시도했지만 행운은 없었다.ggplot alter map 두 번째 변수로 불투명도 채우기

다음은 현재 코드입니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

gg <- ggplot() 
gg <- gg + geom_map(data=mapC, map=mapC, aes(x=long, y=lat, map_id=id, group=group, fill=mapC$proportionObama)) 
gg = gg+ scale_fill_gradient2(limits= c(0,100), name="Proportion of Votes for Obama", low="#E5000A", high="#0012BF",mid="#720964", midpoint=50) 
gg = gg + theme_map() +coord_equal() 
gg <- gg + geom_path(data = mapS, aes(long,lat, group=group), colour="gray50", size=.25) 
gg = gg + theme(legend.position="right") 
gg 
+2

'aes()'안에'$'를 사용하지 마십시오. 대부분이 작업을 수행하지만 채우기 매핑은'fill = proportionObama'이어야합니다. 몇 가지 간단한 경우에는 작동하지만 더 복잡한 플롯에서는 버그가 발생합니다. – Gregor

+1

재현 가능한 예를 제공하십시오 ... –

+0

(1) SO가 이미지를 삽입하는 방법을 제공합니다. (2) conus 이미지를 표시하거나 최소한 coord_map() vs coord_equal()을 사용하려면'coord_map ('polyconic')'을 사용하십시오. (3) 알래스카, 하와이 및 푸에르토 리코 모두 투표를 거쳤으며 귀하는 그들을 제외 시켰습니다. (4) 막 대형 차트를 사용하지 않는 이유는 무엇입니까? – hrbrmstr

답변

1

나는 alphaggplot 문서가 항상 소수 값을 보여줍니다 0과 1로 매핑있어 변수가 될 필요가 있다고 생각합니다. Hue Scale - http://docs.ggplot2.org/0.9.3.1/scale_hue.html

  • Color Fill Alpha - http://docs.ggplot2.org/current/aes_colour_fill_alpha.html
  • 당신은 재생 가능한 코드가없는

    • , 그래서 여기서 일 듯 빠른 테스트했다.

      library(data.table) 
      library(ggplot2) 
      
      
      tmp = data.table(
          'x'=c(1,2,3), 
          'y'=c(1,2,3), 
          'z'=c(.1,.5,.8) 
      ) 
      
      p = ggplot() 
      p = p + geom_point(data=tmp , aes(x=x,y=y,alpha=z)) 
      print(p) 
      
    +1

    ggplot은 모든 원자 열을 alpha 범위로 rescale 매핑합니다. 이것이 그 질문과 무슨 상관이 있는지 모르겠습니다. – hrbrmstr

    +0

    나는 모든 것을 사실상 완전히 투명하게 맵핑하는 매우 작은 알파 (각 카운티의 인구 비율)를 사용했다는 것이 내 쟁점이라고 생각한다. – Martin

    +0

    @Martin : hrbrmstr이 맞습니다. ** 모든 ** 수치가 작 으면 중요하지 않습니다. 당신의 문제는 값의 범위 *가 매우 크지 만 거의 모든 값이 분포의 하단에 있다는 것입니다. LA 카운티에 10 백만 명이 거주하고있는 경우 1 백만 명 이하인 카운티 (3007 카운티 중 ~ 2990 개)는 사실상 보이지 않습니다. 더 좋은 방법은 0-10k, 10k-100k, 100k-1M, 1M-10M과 같은 로그 대 (binarithmic bin)를 사용하는 것입니다. – Gregor

    관련 문제