2017-01-08 7 views
0

Rでリーフレットマップを作成しようとしていますが、これから追加したいのは、変数ごとに異なる円の色だけです。私のデータには、データセットに約5つの異なる値を持つ列Data.Typeがあります。私が望むのは、5つの異なる色で、これらのデータポイントのためのサークルを持つことです。文字変数の色を追加するRリーフレット

output$map <- renderLeaflet({ 
    leaflet() %>% 
     addTiles(
     urlTemplate = "//{s}.tiles.mapbox.com/v3/jcheng.map-5ebohr46/{z}/{x}/{y}.png" 
    ) %>% 
     setView(lng = x, lat = x, zoom = 4) 

    leaflet(getData()) %>% addTiles() %>% 
     addCircles(lng = ~Longitude, lat = ~Latitude, weight = 1, radius=~Var, popup = ~Var, color=~Data.Type 
    ) 
    }) 

これだけでは、灰色の円だけが返され、5つの違いはありません。これはどのように行うべきですか?

編集:データが実際にそれだけで約6を持つことができます以上20.000行

ID Var Var Var Data.Type 
0  99  2016 743 Type A 
1  99  2016 209 Type B 
2  99  2016 349 Type A 
3  99  2016 349 Type D 
4  99  2016 993 Type A 
5  99  2016 122 Type E 
6  99  2016 194 Type B 
7  99  2016 660 Type A 
8  99  2016 221 Type C 
... 

アイデアはData.Typeの各VARの色を持つことである、ある、多少のようになります異なる値

+0

あなたの投稿にあなたのデータセットを含めることができますか? – MLavoie

+0

@MLavoie確かに、私は自分のデータが入っているフォーマットで上記の投稿を編集しました。それはもっと明確になりますように。 – dnsko

+3

このhttps://rstudio.github.io/leaflet/colors.htmlはあなたが望むものを手に入れるのに役立ちます。 – MLavoie

答えて

3

MLavoieのコメントを拡張するには、まずパレット関数を定義する必要があります。これを行うには2つの方法があります。そのうちの2つは、完全に構成されたデータセットで、次に示します。うまくいけば、あなたのデータのためにもうまくいくでしょう。

多くの要因がなく、手動で色を設定したい場合は、確かにそれを行うことができます。それは最初のpal関数です。

色を手動で設定するなどのさまざまな要因がある場合は、RColorBrewerパレットを使用してみてください。これは、次の2番目のpal関数です。あなたが好むものを使用してください - あなたは両方のpal機能を必要としません、私はちょうど参照としてそれらを含めました。すべてのパレット名オプションを表示する場合は、RColorBrewer::display.brewer.all()に電話してください。

library('leaflet') 

# Fake data 
df <- data.frame(lng = c(-5, -10, -15, -20, 25), 
       lat = c(8, 12, 33, 4, 18), 
       size = c(200000, 100000, 800000, 250000, 350000), 
       popup = c('A', 'B', 'C', 'D', 'E'), 
       type = c('A', 'B', 'C', 'D', 'E'), 
       stringsAsFactors = FALSE) 

# If you want to set your own colors manually: 
pal <- colorFactor(
    palette = c('red', 'blue', 'green', 'purple', 'orange'), 
    domain = df$type 
) 

# If you want to use predefined palettes in the RColorBrewer package: 
# Call RColorBrewer::display.brewer.all() to see all possible palettes 
pal <- colorFactor(
    palette = 'Dark2', 
    domain = df$type 
) 

leaflet(df) %>% 
    addTiles() %>% 
    addCircles(lng = ~lng, lat = ~lat, weight = 1, 
      radius = ~size, popup = ~popup, color = ~pal(type)) 
+0

ありがとうあなたの答えのサムのために、私はこれを見つけ出すまで二日過ごした。 –

関連する問題