цвета в R - невозможно создать colorRamp в пространстве Lab после обновления - PullRequest
0 голосов
/ 16 июня 2020

Фон: недавно обновлен с Ubuntu 18.04 до 20.04, а затем установлена ​​R 3.6. Я вручную удалил все старые пакеты из .libPaths (), потому что некоторые зависли. В течение нескольких дней казалось, что все работает нормально, пока у меня не произошло необъяснимое зависание в одной из моих функций.

Я проследил это до вызова функции viridis:

viridis(4) ## hangs indefinitely.

Неправильная строка в viridis () - из colorRamp ()

n=4; alpha = 1; begin = 0; end = 1; direction = 1; option = "D"
 if (begin < 0 | begin > 1 | end < 0 | end > 1) {
        stop("begin and end must be in [0,1]")
    }
    if (abs(direction) != 1) {
        stop("direction must be 1 or -1")
    }
    if (direction == -1) {
        tmp <- begin
        begin <- end
        end <- tmp
    }
    option <- switch(EXPR = option, A = "A", magma = "A", B = "B", 
        inferno = "B", C = "C", plasma = "C", D = "D", viridis = "D", 
        E = "E", cividis = "E", {
            warning(paste0("Option '", option, "' does not exist. Defaulting to 'viridis'."))
            "D"
        })
    map <- viridisLite::viridis.map[viridisLite::viridis.map$opt == 
        option, ]
    map_cols <- grDevices::rgb(map$R, map$G, map$B)
    fn_cols <- grDevices::colorRamp(map_cols, space = "Lab", 
        interpolate = "spline")
    cols <- fn_cols(seq(begin, end, length.out = n))/255
###-> hangs indefinitely here. 

Примеры в? ColorRamp работают нормально - пока я не добавлю space = "Lab".

colorRamp(c("red", "green"),space="rgb")( (0:4)/4 )
       [,1]   [,2] [,3]
[1,] 255.00   0.00    0
[2,] 191.25  63.75    0
[3,] 127.50 127.50    0
[4,]  63.75 191.25    0
[5,]   0.00 255.00    0
> colorRamp(c("red", "green"),space="Lab")( (0:4)/4 )
## stuck again

Это отлично работает на другом ноутбуке с такими же версиями, поэтому я подозреваю, что проблема может быть вызвана какой-то другой зависимостью. Другие анализы, похоже, работают в обычном режиме, только заметили проблемы, когда дело доходит до построения графика. Я пробовал обновиться до 4.0; с тех пор был понижен до 3,6. Между этими обновлениями я понял, что у меня есть установка R 3.5 в среде miniconda для отдельного проекта, и viridis там отлично работает. Однако я не хочу мешать этой установке. При переустановке я включил в исходники только bioni c cran-cran35. В первый раз (и для 4.0) у меня также был репозиторий c2d4u.

Есть идеи, как это исправить? Или еще как потревожить? Готов попробовать другие версии базовой R, так как это fre sh, но 4.0 сделала то же самое. Это мое первое погружение в цветовое пространство, обычно я блаженно игнорирую лежащие в основе механизмы.

ОБНОВЛЕНИЕ: по некоторым причинам эта палитра цветов отлично работает из Rstudio. Локаль немного отличается, и к нему прилагается несколько дополнительных пакетов, но внесение этих изменений в терминал не помогло. Ниже находится информация о сеансе из терминала и rstudio. Есть идеи, что может вызвать эту разницу?

ТЕРМИНАЛ:

sessionInfo() 
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] viridisLite_0.3.0

loaded via a namespace (and not attached):
[1] compiler_3.6.3

RSTUDIO:

> library(viridisLite)
> sessionInfo() 
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] viridisLite_0.3.0

loaded via a namespace (and not attached):
[1] compiler_3.6.3 tools_3.6.3    yaml_2.2.1    
> viridis(4)
[1] "#440154FF" "#31688EFF" "#35B779FF" "#FDE725FF"

...