在 R 中绘制分组日期值时出现问题

Problem while plotting in grouped date values in R

我试图绘制数据集中的最大值 x-axis = Datey-axis = max_value 按站分组,就像我在这个 link 上找到的图片一样,但我想要制作 5 个地块(来自不同的站点)。

这是我的 df 样本:

df2 <- data.frame (Station  = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 10, 10, 10),
                    Date = c("1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018"),
                    MAX_NO2 = c(55,52,58,76,98,12,14,23,54,76,90,99,43,32,76),
                    MAX_O3 = c(13,45,87,72,54,88,102,63,64,53,87,123,15,76,34))

这是我的代码:

library(tidyverse)
library(lubridate)
# your data
df2 %>% 
# add date as date
  mutate(date = ymd(Date)) %>%
# plot them
  ggplot( aes(x = date, y = MAX_NO2 , color = Station==1, group = Station==1)) +
  geom_line() + geom_point() +   theme_test()

但这就是我正在绘制的(这是来自所有数据框,而不是样本):

其中蓝点是第 Nº1.That 站的最大值,这是我唯一想要绘制的东西,而不是同一绘图中的其他东西。地块1站1,地块2站2等

如评论中所述,在使用ggplot2绘图之前删除其他站点是最简单的,这样您只保留需要绘图的数据。另外,为了转换日期,我认为您可能需要 dmymdy 而不是 ymd (至少从您的样本数据来看)。

library(tidyverse)
library(lubridate)

df2 %>%
  # add date as date
  mutate(date = mdy(Date)) %>%
  filter(Station == 1) %>%
  # plot them
  ggplot( aes(x = date, y = MAX_NO2 , color = Station, group = Station)) +
  geom_line() + 
  geom_point() +   
  theme_test()

输出

您提供的data.frame与剧情不一致。但是,如果您想为 once.Not 处的每个站点获取不同的绘图,为每个站点调用不同的 ggplot,也许 facet_wrap() 函数(或 facet_grid())会有所帮助:

library(tidyverse)
library(lubridate)

df2 <- data.frame (Station  = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 10, 10, 10),
                   Date = c("1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018","1/1/2018",  "2/1/2018", "3/1/2018"),
                   MAX_NO2 = c(55,52,58,76,98,12,14,23,54,76,90,99,43,32,76),
                   MAX_O3 = c(13,45,87,72,54,88,102,63,64,53,87,123,15,76,34))

df2 %>% 
 mutate(Station = as.character(Station)) %>% 
 ggplot(aes(x = Date, y = MAX_NO2, colour=Station, group=Station)) +
 geom_line() + geom_point() +   theme_test() +
 facet_wrap(~Station)

我无法显示 SO2 的绘图,因为数据不同。另外注意ymd(date)是错误的,应该是dmy(Date).