向plot_ly标记添加分类颜色会反转显示的点的大小

时间:2018-02-14 15:09:04

标签: r plotly r-plotly

我正在尝试使用plotly创建一个颜色代表某个类(我的示例中为ff)的颜色以及代表种群大小的大小(我的列ss例)。用恒定颜色绘图使得图表正常,即点的大小是代表性的。但是,如果我在调用中添加color=~ff参数,则显示的大小会发生变化并且看起来是倒置的!

这是RE:

# preparing the session and data:
library(plotly)
dd <- data.frame(
  xx = rnorm(10),
  yy = rnorm(10),
  ff = as.factor(c("a","b","c","a","b","c","a","a","b","c")),
  ss = round(runif(10, 100,1000))
)

没有颜色参数的第一个图:

pp1 <- plot_ly(data = dd,
              x = ~xx,
              y = ~yy,
              marker = list(sizeref = mean(dd$ss)/25,
                            size= ~ss ,
                            sizemode= "diameter",
                            mode = "markers")
              ) 
add_markers(pp1,mode = "markers")

注意:我设置sizeref的方式可能看起来很奇怪,但这是我发现在我的真实代码中使我的大小非常漂亮的唯一方法是种群大小变化很大。我认为这导致了我的问题,但可能因此我决定将其保留在我的例子中

这给出了: enter image description here

现在我添加color参数:

pp2 <- plot_ly(data = dd,
              x = ~xx,
              y = ~yy,
              color = ~ff,  ####  !!!  The only line difference
              marker = list(sizeref = mean(dd$ss)/25,
                            size= ~ss ,
                            sizemode= "diameter",
                            mode = "markers")
) 
add_markers(pp2,mode = "markers")

给出:

enter image description here

颜色还可以,但尺寸发生了变化,看起来倒了。

知道我做错了什么吗?可能是因为类别sizeref应用了ff参数吗?如果是的话,该怎么处理呢?

1 个答案:

答案 0 :(得分:1)

我不确定你如何设置你的sizeref,但你试过这个:

plot_ly(data = dd, x = ~xx, y = ~yy, color = ~ff, size= ~ss) %>% 
add_markers(marker = list(sizeref = 3, sizemode= "diameter"))