首页 > 解决方案 > 如何使用 xyplot 将一年中的月份设为我的 x 轴

问题描述

这是我的数据 [![在此处输入图像描述][1]][1] 我的代码

library(ggplot2)
library(reshape)
dt1 =read.csv("C:/Users/My DELL/Documents/R_data/machine learning/dt1.csv")
head(dt1)
dt1$month <- seq(nrow(dt1))
library(reshape2)
mm <- melt(subset(dt1,select=c(month,EgbeNa,UrejeNa,EroNa,RefNa,EgbeMg,UrejeMg,EroMg,RefMg
)),id.var="month")
head(mm)
library(lattice)
xyplot(value ~ month|variable,data=mm,type="l",
       scales=list(y=list(relation="free")),
       layout=c(1,8))
dt_repr = structure(list(Date = c("01-11-17", "01-12-17", "01-01-18", "01-02-18", 
"01-03-18", "01-04-18", "01-05-18", "01-06-18", "01-07-18", "01-08-18", 
"01-09-18", "01-10-18", "01-11-18", "01-12-18", "01-01-19", "01-02-19", 
"01-03-19", "01-04-19", "01-05-19", "01-06-19", "01-07-19", "01-08-19", 
"01-09-19", "01-10-19"), month = 1:24, EgbeNa = c(27.4, 29.25, 
31.1, 20.4, 13.55, 14, 16.25, 18.5, 24.95, 16.2, 30.15, 28.6, 
35.1, 36.5, 28.45, 31.5, 38.1, 28, 32.55, 30.5, 33.2, 30.8, 13, 
24.3), UrejeNa = c(10.45, 9, 7.55, 13.35, 11.6, 12.475, 20.1625, 
27.85, 21.5, 32.05, 17.65, 15.15, 25.7, 18.8, 26.85, 20.65, 23.5, 
26.45, 30.2, 25.75, 28.3, 31.45, 44.4, 39.6), EroNa = c(44.45, 
40.55, 36.65, 43, 39.825, 36.825, 44.1, 51.65, 44.2, 56.1, 61.3, 
66.05, 15.75, 19.15, 13.05, 12.2, 21.7, 17.9, 14.6, 33.3, 21.2, 
19.6, 32.7, 25.1), RefNa = c(10.55, 9.75, 12.35, 19.65, 10.6, 
13.74, 22.62, 25.82, 20.4, 31.2, 16.95, 14.25, 15.03, 17.15, 
12.75, 13.5, 20.45, 16.8, 15.5, 25.4, 19.5, 19.8, 26.7, 25.1), 
    EgbeMg = c(4.118, 4.7155, 5.313, 4.4865, 5.1535, 5.1295, 
    5.113, 5.103, 5.721, 5.285, 3.8575, 4.128, 5.4205, 6.2975, 
    5.134, 5.4605, 5.124, 4.203, 5.2635, 5.135, 6.092, 5.575, 
    4.139, 4.8645), UrejeMg = c(3.6655, 3.977, 4.288, 4.192, 
    4.676, 4.434, 4.7005, 4.966, 5.3895, 5.7165, 4.881, 4.1015, 
    3.743, 6.132, 6.0785, 6.1775, 6.3135, 6.028, 5.739, 6.126, 
    4.5155, 4.716, 5.2165, 5.678), EroMg = c(2.472, 2.31425, 
    2.1565, 2.2115, 2.184, 2.135, 4.135, 6.2005, 5.457, 5.981, 
    5.784, 5.885, 5.406, 5.248, 4.967, 4.449, 5.058, 5.1675, 
    5.667, 6.966, 5.17, 4.8965, 7.201, 6.538), RefMg = c(3.75, 
    3.87, 4.82, 4.132, 3.98, 4.23, 4.57, 5.01, 5.02, 4.67, 4.18, 
    4.51, 5.21, 5.18, 4.76, 4.29, 4.95, 5.07, 5.45, 5.86, 5.11, 
    4.79, 6.01, 5.24)), class = "data.frame", row.names = c(NA, 
-24L)) #This data is reproducible

和输出 在此处输入图像描述

我想使用日期作为我的 x 轴,日期涵盖 24 个月。它从 01-11-17 开始,01-10-19结束。任何人都可以帮忙。

标签: r

解决方案


这是完成任务的一种方法:

library(tidyverse)
library(lubridate)
library(lattice)

df <- dt_repr %>% 
  pivot_longer(
    cols = c(-Date, -month),
    names_to = "names",
    values_to = "values"
  ) %>% 
  mutate(Date = dmy(Date))

xyplot(values ~ Date|names,data=df,type="l",
       scales=list(y=list(relation="free")),
       layout=c(1,8))

在此处输入图像描述


推荐阅读