Closed
Description
Brief description of the problem
Adding scale_color_manual
and scale_linetype_manual
makes all the lines disappeared. This was not a problem with the CRAN version 3.3.3.
Please let me know if I missed anything obvious. Thanks!
library(tibble)
library(dplyr)
library(ggplot2)
library(scales)
DF <- tribble(
~Quality, ~value, ~x,
"Good", 34.2, 9.28,
"Good", 34, 7.97,
"Good", 33.8, 6.94,
"Average", 33.5, 9.86,
"Good", 33.5, 6.08,
"Average", 33.3, 9.64,
"Good", 33.3, 5.51,
"Average", 33.1, 9.42,
"Good", 33.1, 5.01,
"Average", 32.9, 9.21,
"Good", 32.9, 4.57,
"Average", 32.7, 9.01,
"Good", 32.7, 4.23,
"Average", 32.5, 8.81,
"Good", 32.5, 3.93,
"Average", 32.3, 8.62,
"Good", 32.3, 3.71,
"Average", 32.1, 8.36,
"Good", 32.2, 3.53,
"Average", 31.9, 8.04,
"Good", 32, 3.36,
"Average", 31.7, 7.61,
"Good", 31.8, 3.22,
"Average", 31.5, 6.91,
"Good", 31.6, 3.09,
"Average", 31.3, 6.23,
"Good", 31.4, 2.98,
"Average", 31.1, 5.54,
"Good", 31.3, 2.87,
"Average", 31, 4.97,
"Good", 31.1, 2.76,
"Bad", 30.6, 9.65,
"Average", 30.8, 4.54,
"Good", 30.9, 2.67,
"Bad", 30.4, 8.33,
"Average", 30.6, 4.2,
"Good", 30.7, 2.59,
"Bad", 30.2, 7.29,
"Average", 30.4, 3.89,
"Good", 30.6, 2.51,
"Bad", 30, 6.6,
"Average", 30.2, 3.62,
"Good", 30.4, 2.43,
"Bad", 29.9, 6.07,
"Average", 30, 3.43,
"Good", 30.3, 2.36,
"Bad", 29.7, 5.66,
"Average", 29.9, 3.27,
"Good", 30.1, 2.29,
"Bad", 29.5, 5.29,
"Average", 29.7, 3.13,
"Good", 29.9, 2.22,
"Bad", 29.3, 4.94,
"Average", 29.5, 3.01,
"Good", 29.8, 2.16,
"Bad", 29.2, 4.63,
"Average", 29.3, 2.89,
"Good", 29.7, 2.1,
"Bad", 29, 4.35,
"Average", 29.2, 2.77,
"Good", 29.5, 2.04,
"Bad", 28.8, 4.08,
"Average", 29, 2.67,
"Good", 29.4, 1.99,
"Bad", 28.7, 3.83,
"Average", 28.8, 2.57,
"Good", 29.2, 1.94,
"Bad", 28.5, 3.61,
"Average", 28.7, 2.47,
"Good", 29.1, 1.89,
"Bad", 28.3, 3.4,
"Average", 28.5, 2.38,
"Good", 29, 1.85,
"Bad", 28.2, 3.21,
"Average", 28.4, 2.3,
"Good", 28.8, 1.81,
"Bad", 28, 3.04,
"Average", 28.2, 2.22,
"Good", 28.6, 1.78,
"Bad", 27.9, 2.88,
"Average", 28.1, 2.15,
"Good", 28.4, 1.75,
"Bad", 27.8, 2.74,
"Average", 28, 2.08,
"Good", 28.2, 1.71,
"Bad", 27.6, 2.6,
"Average", 27.8, 2.02,
"Good", 28, 1.68,
"Bad", 27.5, 2.49,
"Average", 27.7, 1.96,
"Good", 27.8, 1.66,
"Bad", 27.4, 2.39,
"Average", 27.5, 1.9,
"Good", 27.7, 1.63,
"Bad", 27.2, 2.3,
"Average", 27.4, 1.85,
"Good", 27.5, 1.61,
"Bad", 27, 2.22,
"Average", 27.2, 1.8,
"Good", 27.3, 1.59,
"Bad", 26.8, 2.15,
"Average", 27.1, 1.75,
"Good", 27.2, 1.57,
"Bad", 26.6, 2.08,
"Average", 26.9, 1.71,
"Good", 27, 1.54,
"Bad", 26.4, 2.02,
"Average", 26.7, 1.67,
"Good", 26.8, 1.52,
"Bad", 26.2, 1.97,
"Average", 26.5, 1.63,
"Good", 26.6, 1.5,
"Bad", 26, 1.91,
"Average", 26.3, 1.6,
"Good", 26.5, 1.48,
"Bad", 25.8, 1.86,
"Average", 26.1, 1.57,
"Good", 26.3, 1.47,
"Bad", 25.6, 1.81,
"Average", 25.9, 1.54,
"Good", 26.1, 1.45,
"Bad", 25.5, 1.77,
"Average", 25.7, 1.51,
"Good", 26, 1.43,
"Bad", 25.3, 1.73,
"Average", 25.5, 1.48,
"Good", 25.8, 1.42,
"Bad", 25.1, 1.68,
"Average", 25.4, 1.45,
"Good", 25.6, 1.4,
"Bad", 25, 1.65,
"Average", 25.2, 1.43,
"Good", 25.5, 1.38,
"Bad", 24.8, 1.61,
"Average", 25, 1.4,
"Good", 25.3, 1.37,
"Bad", 24.6, 1.58,
"Average", 24.8, 1.38,
"Good", 25.2, 1.36,
"Bad", 24.5, 1.54,
"Average", 24.7, 1.36,
"Good", 25, 1.34,
"Bad", 24.3, 1.51,
"Average", 24.5, 1.34,
"Good", 24.9, 1.33,
"Bad", 24.2, 1.48,
"Average", 24.4, 1.32,
"Good", 24.7, 1.32,
"Bad", 24.1, 1.46,
"Average", 24.2, 1.3,
"Good", 24.6, 1.3,
"Bad", 23.9, 1.44,
"Average", 24.1, 1.29,
"Good", 24.4, 1.29,
"Bad", 23.8, 1.42,
"Average", 24, 1.27,
"Good", 24.3, 1.28,
"Bad", 23.7, 1.4,
"Average", 23.9, 1.26,
"Good", 24.1, 1.26,
"Bad", 23.6, 1.38,
"Average", 23.8, 1.25,
"Good", 24, 1.25,
"Bad", 23.5, 1.37,
"Average", 23.7, 1.24,
"Good", 23.8, 1.24,
"Bad", 23.4, 1.35,
"Average", 23.6, 1.23,
"Good", 23.7, 1.23,
"Bad", 23.2, 1.33,
"Average", 23.4, 1.22,
"Good", 23.5, 1.22,
"Bad", 23.1, 1.32,
"Average", 23.3, 1.21,
"Good", 23.3, 1.21,
"Average", 23.2, 1.2,
"Good", 23.1, 1.2
)
Set colors and line types manually
quality_list <- DF %>%
distinct(Quality) %>%
pull()
quality_list
#> [1] "Good" "Average" "Bad"
manual_scale_colors <- setNames(c("#888888", "#332288", "#88CCEE"), quality_list)
manual_scale_colors
#> Good Average Bad
#> "#888888" "#332288" "#88CCEE"
manual_scale_linetype <- setNames(c("solid", "dashed", "dotted"), quality_list)
manual_scale_linetype
#> Good Average Bad
#> "solid" "dashed" "dotted"
Plot
log_breaks <- function(maj, radix = 10) {
function(x) {
minx <- floor(min(logb(x, radix), na.rm = TRUE)) - 1
maxx <- ceiling(max(logb(x, radix), na.rm = TRUE)) + 1
n_major <- maxx - minx + 1
major_breaks <- seq(minx, maxx, by = 1)
if (maj) {
breaks <- major_breaks
} else {
steps <- logb(1:(radix - 1), radix)
breaks <- rep(steps, times = n_major) +
rep(major_breaks, each = radix - 1)
}
radix^breaks
}
}
scale_x_log_eng <- function(..., radix = 10) {
scale_x_continuous(...,
trans = log_trans(radix),
breaks = log_breaks(TRUE, radix),
minor_breaks = log_breaks(FALSE, radix)
)
}
str_pad_custom <- function(labels) {
new_labels <- as.character(1/as.numeric(labels))
return(new_labels)
}
p1 <- ggplot(DF, aes(x = x,
y = value,
linetype = Quality,
color = Quality)) +
geom_line(size = 1) +
scale_x_log_eng(limits = c(1, 10),
expand = c(0, 0),
labels = str_pad_custom) +
scale_y_continuous(labels = scales::comma, expand = expansion(mult = c(0, 0.1))) +
annotation_logticks(sides = 'tb') +
theme_bw(base_size = 16)
p1
Adding manual color scale
p1 +
scale_color_manual("", values = manual_scale_colors)
Adding both manual color and linetype scales
p1 +
scale_color_manual("", values = manual_scale_colors) +
scale_linetype_manual("", values = manual_scale_linetype)
Here is the plot result generated using CRAN v3.3.3
Created on 2021-05-16 by the reprex package (v2.0.0)
Session info
sessioninfo::session_info()
#> - Session info ---------------------------------------------------------------
#> version R version 4.0.3 (2020-10-10)
#> os Windows 10 x64
#> system x86_64, mingw32
#> ui RTerm
#> ctype English_United States.1252
#>
#> - Packages -------------------------------------------------------------------
#> package * version date lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.0.0)
#> backports 1.2.1 2020-12-09 [1] CRAN (R 4.0.3)
#> cli 2.5.0 2021-04-26 [1] CRAN (R 4.0.5)
#> colorspace 2.0-1 2021-05-04 [1] CRAN (R 4.0.5)
#> crayon 1.4.1 2021-02-08 [1] CRAN (R 4.0.3)
#> curl 4.3.1 2021-04-30 [1] CRAN (R 4.0.3)
#> DBI 1.1.1 2021-01-15 [1] CRAN (R 4.0.3)
#> digest 0.6.27 2020-10-24 [1] CRAN (R 4.0.2)
#> dplyr * 1.0.6 2021-05-05 [1] CRAN (R 4.0.5)
#> ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.0.3)
#> evaluate 0.14 2019-05-28 [1] CRAN (R 4.0.0)
#> fansi 0.4.2 2021-01-15 [1] CRAN (R 4.0.3)
#> farver 2.1.0 2021-02-28 [1] CRAN (R 4.0.3)
#> fs 1.5.0 2020-07-31 [1] CRAN (R 4.0.3)
#> generics 0.1.0 2020-10-31 [1] CRAN (R 4.0.2)
#> ggplot2 * 3.3.3.9000 2021-05-16 [1] Github (tidyverse/ggplot2@c9adeed)
#> glue 1.4.2 2020-08-27 [1] CRAN (R 4.0.2)
#> gtable 0.3.0 2019-03-25 [1] CRAN (R 4.0.0)
#> highr 0.9 2021-04-16 [1] CRAN (R 4.0.5)
#> htmltools 0.5.1.1 2021-01-22 [1] CRAN (R 4.0.3)
#> httr 1.4.2 2020-07-20 [1] CRAN (R 4.0.2)
#> knitr 1.33 2021-04-24 [1] CRAN (R 4.0.5)
#> labeling 0.4.2 2020-10-20 [1] CRAN (R 4.0.3)
#> lifecycle 1.0.0 2021-02-15 [1] CRAN (R 4.0.4)
#> magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.0.3)
#> mime 0.10 2021-02-13 [1] CRAN (R 4.0.4)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.0.0)
#> pillar 1.6.0 2021-04-13 [1] CRAN (R 4.0.5)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.0.0)
#> purrr 0.3.4.9000 2021-05-16 [1] Github (tidyverse/purrr@5aca9df)
#> R6 2.5.0 2020-10-28 [1] CRAN (R 4.0.2)
#> reprex 2.0.0 2021-04-02 [1] CRAN (R 4.0.5)
#> rlang 0.4.11 2021-04-30 [1] CRAN (R 4.0.3)
#> rmarkdown 2.8 2021-05-07 [1] CRAN (R 4.0.5)
#> scales * 1.1.1 2020-05-11 [1] CRAN (R 4.0.0)
#> sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.0.0)
#> stringi 1.5.3 2020-09-09 [1] CRAN (R 4.0.3)
#> stringr 1.4.0 2019-02-10 [1] CRAN (R 4.0.0)
#> styler 1.4.1 2021-03-30 [1] CRAN (R 4.0.5)
#> tibble * 3.1.1 2021-04-18 [1] CRAN (R 4.0.5)
#> tidyselect 1.1.1 2021-04-30 [1] CRAN (R 4.0.5)
#> utf8 1.2.1 2021-03-12 [1] CRAN (R 4.0.5)
#> vctrs 0.3.8 2021-04-29 [1] CRAN (R 4.0.3)
#> withr 2.4.2 2021-04-18 [1] CRAN (R 4.0.5)
#> xfun 0.23 2021-05-15 [1] CRAN (R 4.0.3)
#> xml2 1.3.2 2020-04-23 [1] CRAN (R 4.0.0)
#> yaml 2.2.1 2020-02-01 [1] CRAN (R 4.0.0)
#>
Metadata
Metadata
Assignees
Labels
No labels