Às 11:07 de 28/04/2023, Achim Zeileis escreveu:
This was introduced in 4.3.0 (hence Rui cannot reproduce it in 4.2.3).

It's a bug and was introduced when fixing this other bug:

https://bugs.R-project.org/show_bug.cgi?id=18476
https://hypatia.math.ethz.ch/pipermail/r-help/2023-February/476960.html

Apparently, it only affects the case with n = 2 for diverging and divergingx palettes. The culprit is this line:

i <- if(n2 == 1L) 0 else seq.int(1, by = -2/(n - 1), length.out = n2)

I think n2 == 1L is not the right condition and we need to distinguish n = 1 and n = 2.

Will have a closer look...

Thanks for reporting this!
Achim

On Fri, 28 Apr 2023, Rui Barradas wrote:

Às 06:01 de 28/04/2023, Stevie Pederson escreveu:
Hi,

I'm not sure if this is a bug or a feature, but after updating to Rv4.3, if requesting two colours from hcl.colors() you now get the same colour twice.
This occurs for all palettes I've tried. My reprex:

hcl.colors(2, "Vik")
[1] "#F1F1F1" "#F1F1F1"

As I have multiple workflows I run repeatedly with A vs B comparisons, this
has just broken the visualisations in many of them. Obviously a
workaround is hcl.colors(3, "Vik")[c(1, 3)] but this seems rather
unintuitive.

Thanks in advance,

Stevie

sessionInfo()
R version 4.3.0 (2023-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.6 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

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

time zone: Australia/Adelaide
tzcode source: system (glibc)

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

loaded via a namespace (and not attached):
[1] compiler_4.3.0 tools_4.3.0

    [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Hello,

I cannot reproduce this on Windows.


hcl.colors(2, "Vik")
# [1] "#002E60" "#3E2000"

clrs <- sapply(hcl.pals(), \(p) hcl.colors(2, p))
any(apply(clrs, 2, \(x) x[1] == x[2]))
# [1] FALSE

sessionInfo()
# R version 4.2.3 (2023-03-15 ucrt)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 10 x64 (build 22621)
#
# Matrix products: default
#
# locale:
# [1] LC_COLLATE=Portuguese_Portugal.utf8 LC_CTYPE=Portuguese_Portugal.utf8
# [3] LC_MONETARY=Portuguese_Portugal.utf8 LC_NUMERIC=C
# [5] LC_TIME=Portuguese_Portugal.utf8
#
# attached base packages:
# [1] stats     graphics  grDevices utils     datasets  methods   base
#
# loaded via a namespace (and not attached):
# [1] compiler_4.2.3


Hope this helps,

Rui Barradas

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Hello,

Right! I ran the wrong R version, here it is with R 4.3.0.
The bug is now reproducible on Windows 11.


hcl.colors(2, "Vik")
# [1] "#F1F1F1" "#F1F1F1"

clrs <- sapply(hcl.pals(), \(p) hcl.colors(2, p))
any(apply(clrs, 2, \(x) x[1] == x[2]))
# [1] TRUE

sum(apply(clrs, 2, \(x) x[1] == x[2]))
# [1] 35

which(apply(clrs, 2, \(x) x[1] == x[2]))
#      Blue-Red    Blue-Red 2    Blue-Red 3     Red-Green  Purple-Green
#            80            81            82            83            84
#  Purple-Brown   Green-Brown Blue-Yellow 2 Blue-Yellow 3  Green-Orange
#            85            86            87            88            89
#  Cyan-Magenta        Tropic          Broc          Cork           Vik
#            90            91            92            93            94
#        Berlin        Lisbon        Tofino         Earth          Fall
#            95            96            97            99           100
#        Geyser      TealRose         Temps          PuOr          RdBu
#           101           102           103           104           105
#          RdGy          PiYG          PRGn          BrBG        RdYlBu
#           106           107           108           109           110
#        RdYlGn      Spectral      Zissou 1       Cividis          Roma
#           111           112           113           114           115

sessionInfo()
# R version 4.3.0 (2023-04-21 ucrt)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 11 x64 (build 22621)
#
# Matrix products: default
#
#
# locale:
# [1] LC_COLLATE=Portuguese_Portugal.utf8  LC_CTYPE=Portuguese_Portugal.utf8
# [3] LC_MONETARY=Portuguese_Portugal.utf8 LC_NUMERIC=C
# [5] LC_TIME=Portuguese_Portugal.utf8
#
# time zone: Europe/Lisbon
# tzcode source: internal
#
# attached base packages:
# [1] stats     graphics  grDevices utils     datasets  methods   base
#
# loaded via a namespace (and not attached):
# [1] compiler_4.3.0


Hope this helps,

Rui Barradas

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to