1

我正在尝试制作一个plotly具有代表某个类的颜色(ff在我的示例中为因素)和代表人口规模的大小(ss在我的示例中为列)的图。用恒定颜色绘制可以使图形正常,即点的大小具有代表性。但是,如果我将color=~ff参数添加到调用中,显示的尺寸会发生变化并且看起来是倒置的!

这是一个回复:

# 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可能看起来很奇怪,但这是我发现在我的真实代码中使我的大小漂亮的唯一方法是人口大小变化很大。我认为这会导致我的问题,但可能因此我决定将其保留在我的示例中

这给出了: 在此处输入图像描述

现在当我添加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")

给出:

在此处输入图像描述

颜色还可以,但尺寸发生了变化,似乎倒置了。

知道我做错了什么吗?是不是该sizeref论点然后按类别应用ff?如果是,如何处理?

4

1 回答 1

1

我不确定您如何设置 sizeref,但您是否尝试过:

plot_ly(data = dd, x = ~xx, y = ~yy, color = ~ff, size= ~ss) %>% 
add_markers(marker = list(sizeref = 3, sizemode= "diameter"))
于 2018-02-14T20:49:00.600 回答