Невозможно изменить шкалу х с даты на число - PullRequest
1 голос
/ 02 мая 2020

Я получил коронавирус df, и мне нужно сравнить данные Израиля и Великобритании за то время, когда в обеих странах было более 10 подтвержденных пациентов, это мой код:

library(ggplot2)
library(dplyr)

#Data frame
df.raw <- read.csv(url('https://raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv'))
str(df)
df <- df.raw
df$Date <- as.Date(df$Date)
str(df)

df.israel <- df %>% filter(Country == 'Israel', Confirmed>10)
df.uk <- df %>% filter(Country == 'United Kingdom', Confirmed>10)
if(df.israel$Date[1] > df.uk$Date[1]){
  df.uk <- df.uk %>% filter(Date >= df.israel$Date[1])
} else {
  df.israel <- df.israel %>% filter(Date >= df.uk$Date[1])
}

ggplot() +
  geom_point(data = df.israel, aes(Date, Confirmed), color = 'blue') +
  geom_point(data = df.uk, aes(Date,Confirmed), color = 'red')

Теперь мне нужна ось X будет цифра c (1,2,3 et c), но я не знаю, как (пробовал xlim, scale_x_continuous) кто-то знает, как это сделать?

Мой график

1 Ответ

1 голос
/ 02 мая 2020

Вы можете использовать match для получения чисел вместо Date. Также лучше получать данные в длинном формате, а не создавать два отдельных кадра данных.

library(dplyr)
library(ggplot2)

df %>%
  filter(Country %in% c('Israel', 'United Kingdom') & Confirmed>10) %>%
  tidyr::pivot_longer(cols = Country) %>%
  arrange(Date) %>%
  mutate(day = match(Date, unique(Date))) %>%
  ggplot() + aes(day, Confirmed, color = value) + geom_point() + 
  scale_color_manual(values = c('blue', 'red'))

enter image description here

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