Я пишу скрипт, который, как предполагается, может читать большой набор данных и отображать результаты.
Скрипт:
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 "