Проблемы R с scale_color_discrete () - PullRequest
0 голосов
/ 07 мая 2020

Я пишу скрипт, который, как предполагается, может читать большой набор данных и отображать результаты.

Скрипт:

paths <- list.files(path = path, pattern="\\.csv$", full.names = TRUE)

dataset <- data.frame()

for (x in paths) {  
   t <- fread(file)  
   dataset <- rbind(dataset, t)  
}  

mapping <- aes(
  x = column_c 
  , color = column_a
  , linetype = column_b
)

plot <- (ggplot(data=dataset, mapping=mapping)
         + stat_ecdf()
         + scale_color_discrete(name = "COL_A", breaks = c(1, 2, 3))
         + scale_linetype_discrete(name = "COL_B", breaks = c("aaa", "bbb", "ccc"))        
)

Набор данных состоит из трех столбцов: column_a, column_b, column_c In column_a возможные значения: 1, 2, 3 (тип: целое число)
В column_b возможные значения: aaa, bbb, cccc (тип: символ)
В column_c разные значения в диапазоне (0,1000) (тип: целое число)

Проблема: Чтобы организовать график, я использую в aes параметр цвета, основанный на column_a, и параметр линии, который должен быть основан на column_b. Построенный график, кажется, принимает команду типа линии, но игнорирует color = column_a. Он не показывает никаких сообщений об ошибках, просто кажется, что он не показывает линий другого цвета. Все они одного цвета.
Это приводит меня к выводу, что он либо не распознает разрывы.
Чтобы проверить это, я выполнил следующую команду:

unique ( набор данных $ column_a)

, и я получил как return

[1] 2 3 1
Итак, я бы сказал, что набор данных действительно содержит разрывы, которые я должны быть установлены в строке

 + scale_color_discrete(name = "COL_A", breaks = c(1, 2, 3))

Кто-нибудь замечает, что я делаю неправильно?

UPDATE: class (dataset) [1] "tbl_df" "tbl" " data.frame "

1 Ответ

0 голосов
/ 07 мая 2020

Чтобы иметь дискретную шкалу, столбец должен иметь класс factor или character. Числа c (включая целое число) будут иметь дискретный масштаб.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...