2D-график с 3-й переменной в качестве цвета в RStudio - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть набор данных в виде CSV с тремя столбцами:

  • отметка времени (например, 2018/12/15)
  • ключевое слово (например, "привет")
  • count (например, 7)

Мне нужен один график, где все строки одного и того же ключевого слова связаны друг с другом, а отметка времени находится на оси X, а счетчик - на оси Y.Мне бы хотелось, чтобы каждое ключевое слово имело свой цвет для своей строки и строки, помеченной ключевым словом.

CSV имеет только ~ 30 000 строк, и R работает на выделенном компьютере.Производительность можно игнорировать.

Я пробовал разные подходы с mathplot и ggplot на этом форуме, но не смог заставить его работать с моими собственными данными.

Какое самое простое решение сделать это в R?

Спасибо!

РЕДАКТИРОВАТЬ:

Я попытался настроить код римлян и попробовал следующее:

`csvdata <- read.csv("c:/mydataset.csv", header=TRUE, sep=",")  

time <- csvdata$timestamp  
count <- csvdata$count  
keyword <- csvdata$keyword  

time <- rep(time)  
xy <- data.frame(time, word = c(keyword), count, lambda = 5)  

library(ggplot2)  

ggplot(xy, aes(x = time, y = count, color = keyword)) +  
  theme_bw() +  
  scale_color_brewer(palette = "Set1") +  # choose appropriate palette  
  geom_line()`

Это создает правильный холст, но в нем нет точек / линий ...

ДАННЫЕ:

head (csvdata)

keyword count  timestamp
1 non-distinct-word     3 2018/08/09
2 non-distinct-word     2 2018/08/10
3 non-distinct-word     3 2018/08/11

str (csvdata)

'data.frame':   121 obs. of  3 variables:
 $ keyword  : Factor w/ 10 levels "non-distinct-word",..: 5 5 5 5 5 5 5 5 5 5 ...
 $ count    : int  3 2 3 1 6 6 2 3 2 1 ...
 $ timestamp: Factor w/ 103 levels "2018/08/09","2018/08/10",..: 1 2 3 4 5 6 7 8 9 10 ...

1 Ответ

0 голосов
/ 16 декабря 2018

Как то так?

# Generate some data. This is the part poster of the question normally provides.
today <- as.Date(Sys.time())
time <- rep(seq.Date(from = today, to = today + 30, by = "day"), each = 2)
xy <- data.frame(time, word = c("hello", "world"), count = rpois(length(time), lambda = 5))

library(ggplot2)

ggplot(xy, aes(x = time, y = count, color = word)) +
  theme_bw() +
  scale_color_brewer(palette = "Set1") +  # choose appropriate palette
  geom_line()

enter image description here

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