2016-05-30 4 views
0

Ist das möglich? Ich möchte wie etwas tunKombinieren von Farbe und Form in einem R-Plotdiagramm

library(plotly) 
library(dplyr) 

df <- data.frame(a=c(1,2,3,4,5,6),b=c(3,5,2,6,8,1),c=c("p","p","q","r","r","r"), 
      d=c("v","v","w","v","v","v"), stringsAsFactors= F) 


df %>% 
plot_ly(x=a,y=b,mode="markers",type="scatter", color=c, 
     marker = list(   
     symbol=d) 
) 

Aber das andere Symbol I auf dem dritten Datenpunkt möchten, nicht

enter image description here

auch erscheint, ist es möglich, die Symbole, um andere zu sein als Standard

TIA

+1

ggplot (data = df, aes (x = a, y = b, Form = d, color = c)) + geom_point() ; ggploty() würde funktionieren – MLavoie

+0

Danke. Es wäre ohne den Tippfehler :) Allerdings würde ich idealerweise native plotly verwenden wollen, wenn es eine Lösung gibt – pssguy

+1

hast du versucht, diese df%>% plot_ly (x = a, y = b, Modus = "Marker", Symbol = d , Farbe = c) – MLavoie

Antwort

1

Kopieren Sie einfach mein Kommentar hier ein:

Wenn Sie mit plotly bleiben möchten, können Sie verwenden:

symbols = c("cross", "square", "triangle-down") 

EDIT:

df %>% plot_ly(x=a,y=b,mode="markers", symbol=d, color=c) 

Sie können auch Ihre Symbole mit definieren Sie eine Interaktion schaffen könnte und dann diesen neuen Faktor verwenden als ein Symbol. Sie werden nur eine Legende haben (ich glaube nicht, dass zwei Legenden möglich sind mit plotly).

df$Int <- interaction(df$c, df$d) 
df %>% plot_ly(x=a,y=b,mode="markers", symbol=Int) 

Aber auch ggplot2 mit verwenden:

ggplot(data=df, aes(x=a, y=b, shape=d, color=c)) + geom_point() 
ggplotly() 
+0

Vielen Dank für Ihre Hilfe. JAR es ist ggplotly(). Wenn jemand eine native plotly-Lösung hat, dann zögere nicht mitzumachen :) – pssguy

+0

Mit der neuesten Version 'plotly_4.5.2' sollte es möglich sein:' df%>% plot_ly (x = ~ a, y = ~ b, type = " streuen ", mode =" markers ", symbol = ~ d, color = ~ c)' – Jimbou