2017-03-08 1 views
1

Ich habe gerade angefangen, plotly in R zu verwenden, und es funktioniert großartig, aber ich kann nicht herausfinden, wie man zwei Dinge macht.Skalieren von Punkten und Auswählen von Farben mit plot_ly R-Paket

1) Ich muss die Farben meines Splits auswählen. Derzeit spalte ich nach Territory und erlaube mir nicht zu programmieren, welche Farben ich in jedem Gebiet haben möchte. 2) Ich muss auch die Punkte skalieren, so dass einige Marker sehr groß sind. Ich habe versucht, eine Größe für jede Zeile und Einstellungsgröße = ~ Größe und Größen = c (2, 100) zu erstellen, aber das hat nicht funktioniert.

Irgendwelche Ratschläge, wie man das macht? Ich habe versucht, die plotly R-Referenz zu lesen, kann aber nicht herausfinden, wie dies mit plotly_mapbox zu tun ist. Ich habe meinen Code ohne den Größen- oder Farbversuch eingefügt, weil ich ihn nie zur Arbeit bringen konnte.

p <- df %>% 
    plot_mapbox(lat = ~lat, lon = ~lon, 
       split = ~Territory, 
       mode = 'scattermapbox', 
       text = df$text, 
       hoverinfo = "text" 
      ) %>% 
    layout(title = 'Ship to Zip Codes', 
     font = list(color='white'), 
     plot_bgcolor = '#191A1A', 
     paper_bgcolor = '#191A1A', 
     mapbox = list(style = 'dark'), 
     legend = list(orientation = 'h', 
        font = list(size = 8)), 
     margin = list(l = 25, r = 25, 
         b = 25, t = 25, 
         pad = 2)) 

Antwort

1

Sie können die Markergröße über marker = list(size = 2) einstellen.

Das Einstellen der Farben ist schwieriger und kann nicht direkt mit plot_mapbox getan werden, soweit ich weiß.


Aber wir können eine neue Spalte in unseren Datenrahmen

df$colors <- factor(df$class, levels = unique(df$class)) 

dann unsere eigene Farbliste definieren

cols <- c("red", "blue", "black", "green", "orange", "cyan", "gray50") 

und schließlich alles über plot_geo

plot_geo(df) %>% 
    add_markers(
    x = ~reclong, y = ~reclat, color = ~colors, colors = cols, marker = list(size = 2)) 
Grundstück zuweisen

Der gesamte Code, um die benutzerdefinierten Farben in einer Streukarte in Plotly zu erhalten.

library(plotly) 

df = read.csv('https://raw.githubusercontent.com/bcdunbar/datasets/master/meteorites_subset.csv') 

df$colors <- factor(df$class, levels = unique(df$class)) 
cols <- c("red", "blue", "black", "green", "orange", "cyan", "gray50") 

plot_geo(df) %>% 
add_markers(x = ~reclong, 
      y = ~reclat, 
      color = ~df$colors, 
      colors = cols, 
      marker = list(size = 2)) 

enter image description here

Verwandte Themen