【问题标题】:Combining color and shape in an R plotly chart在 R 图中结合颜色和形状
【发布时间】:2016-05-30 16:44:12
【问题描述】:

这可能吗。我想做类似的事情

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)
  )

但是我想要在第三个数据点上的不同符号没有出现

也可以将符号设置为默认以外的符号

TIA

【问题讨论】:

  • ggplot(data=df, aes(x=a, y=b, shape=d, color=c)) + geom_point(); ggploty() 会工作
  • 谢谢。它不会有错字:) 但是,如果有解决方案,我理想情况下希望使用原生情节
  • 你试过这个df %>% plot_ly(x=a,y=b,mode="markers", symbol=d, color=c)
  • 我以为我有 - 但显然没有。我以为符号在标记内。有点迷失在大量的参考资料中。如果您想作为答案,那么我会接受
  • @MLavoie 实际上这给了我一个符号差异,但我失去了颜色差异!

标签: r plotly


【解决方案1】:

在这里复制我的评论:

如果你想坚持plotly,你可以使用:

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

您还可以使用以下方式定义您的符号:

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

编辑: 您可以创建交互,然后使用这个新因素作为符号。您将只有一个图例(我认为原生 plotly 不可能有两个图例)。

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

但你也可以使用ggplot2 使用:

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

【讨论】:

  • 感谢您的帮助。 JAR 它是 ggplotly()。如果有人有本地的情节解决方案,请随时贡献:)
  • 最新版本plotly_4.5.2应该可以:df %&gt;% plot_ly(x=~a,y=~b,type="scatter", mode="markers", symbol=~ d, color=~c)
猜你喜欢
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 2012-05-22
  • 2018-07-07
相关资源
最近更新 更多