繁体   English   中英

当颜色是离散的时,R曲线散点图标记尺寸似乎取决于颜色

[英]R plotly scatter plot marker size appears to depend on color when color is discrete

更新:在此处作为错误报告打开: https//github.com/ropensci/plotly/issues/1133

我正在使用plot_ly创建散点图,其中颜色由因子变量指示,大小由数字指示。 看起来在这种情况下,尺寸受到颜色的奇怪影响。

为了演示,这里我将相同的变量分配给xsize 在这种情况下,人们会期望最大的点位于最右边。 此演示代码包含一些额外的hoverinfo用于调试。

library(plotly)

my_data <- mtcars
my_data$carb <- as.factor(mtcars$carb)

plot_ly(my_data,
        x = ~wt,
        y = ~mpg,
        size = ~wt,
        color = ~carb,
        type = 'scatter',
        mode = 'markers',
        hoverinfo = 'text',
        text = ~paste0('wt (x): ', wt, '\n',
                       'mpg (y): ', mpg, '\n',
                       'wt (size): ', wt, '\n',
                       'carb (color): ', carb, '\n'))

而不是右边的最大点,看起来好像是在每个颜色组中缩放尺寸,这根本不是我真正想要的:

在此输入图像描述

我尝试从因素更改为字符,同样的事情发生,如果我更改为数字(使用因子级别映射到颜色),则图例变为连续,这是不好的。 有任何想法吗?

我不知道问题的答案,但经过几次测试后,我觉得这与颜色变量中的数字级别有关。

library(plotly)

my_data <- mtcars
my_data$carb <- factor(mtcars$carb)
my_data$cyl <- factor(mtcars$cyl) # cyl contains 3 levels and works fine
plot_ly(data=my_data, x = ~wt, y = ~mpg, color = ~cyl, size = ~wt)


# 2 levels works fine
my_data$carb <- factor(mtcars$carb)
levels(my_data$carb) <- rep(1:2,each=3)
plot_ly(data=my_data, x = ~wt, y = ~mpg, color = ~carb, size = ~wt)

# 3 levels works fine
my_data$carb <- factor(mtcars$carb)
levels(my_data$carb) <- rep(1:3,each=2)
plot_ly(data=my_data, x = ~wt, y = ~mpg, color = ~carb, size = ~wt)

# 4 levels break down
my_data$carb <- factor(mtcars$carb)
levels(my_data$carb) <- c(1,1,2,2,3,4)
plot_ly(data=my_data, x = ~wt, y = ~mpg, color = ~carb, size = ~wt)

可能有一个bug?

更新由@StéphaneLaurent建议,这与数据中单次出现的因子水平有关,在这种情况下, carb 68 如果将它们合并为一个级别,它似乎正在起作用

my_data$carb <- factor(mtcars$carb)
levels(my_data$carb) <- c(1,2,3,4,5,5)
plot_ly(data=my_data, x = ~wt, y = ~mpg, color = ~carb, size = ~wt)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM