簡體   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