Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot使用多年数据定义x轴上的每月增量_R_Ggplot2 - Fatal编程技术网

R ggplot使用多年数据定义x轴上的每月增量

R ggplot使用多年数据定义x轴上的每月增量,r,ggplot2,R,Ggplot2,您好,我想在x轴上创建一个带有缩写月份标签的绘图 这是我的数据: df <- structure(list(site = structure(c(33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 33L, 34L, 35L, 36L, 3

您好,我想在x轴上创建一个带有缩写月份标签的绘图

这是我的数据:

df <- structure(list(site = structure(c(33L, 34L, 35L, 36L, 37L, 38L,  39L, 40L, 41L, 42L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L,  42L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 33L, 34L,  35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 33L, 34L, 35L, 36L, 37L,  38L, 39L, 40L, 41L, 42L), .Label = c("INDU01", "INDU02", "INDU03",  "INDU04", "INDU05", "INDU06", "INDU07", "INDU08", "INDU09", "INDU10",  "MISS01", "MISS02", "MISS03", "PIRO01", "PIRO02", "PIRO03", "PIRO04",  "PIRO05", "PIRO06", "PIRO07", "PIRO08", "PIRO09", "PIRO10", "SLBE03",  "SLBE04", "SLBE08", "SLBE09", "SLBE11", "V1DA1", "V3DA2", "V8DC2",  "VNPBP70", "APIS01", "APIS02", "APIS03", "APIS04", "APIS05",  "APIS06", "APIS07", "APIS08", "APIS10", "APIS11", "MISS04", "MISS08",  "MISS09", "SLBE01", "SLBE02", "SLBE05", "SLBE06", "SLBE07", "V12DA2",  "V4DC1", "V9DB1", "V9DC2", "VNPBP29", "VNPBP42", "GRPO02", "GRPO03",  "GRPO04", "GRPO05", "GRPO06", "GRPO07", "ISRO01", "ISRO02", "ISRO03",  "ISRO04", "ISRO05", "ISRO06", "ISRO07", "ISRO08", "ISRO09", "ISRO10",  "MISS05", "MISS06", "MISS07", "MISS10", "V10DA4", "V11DB4", "V12DC3",  "V5DA1", "V7DE2", "V7DF2", "GRPO01"), class = "factor"), log.start = structure(c(16218,  16218, 16218, 16218, 16218, 16218, 16218, 16218, 16218, 16218,  16540, 16541, 16550, 16553, 16542, 16543, 16542, 16553, 16553,  16552, 16905, 16905, 16905, 16906, 16905, 16905, 16905, 16905, 16905, 16905, 17270, 17270, 17290, 17290, 17289, 17289, 17291,  17288, 17290, 17290, 17622, 17622, 17655, 17655, 17655, 17655,  17655, 17655, 17655, 17655), class = "Date"), log.end = structure(c(16278,  16271, 16317, 16317, 16271, 16280, 16317, 16317, 16277, 16317,  16664, 16694, 16666, 16667, 16671, 16658, 16647, 16660, 16670,  16667, 17048, 17046, 17010, 17124, 17108, 17098, 17124, 17145,  17008, 17000, 17274, 17379, 17382, 17389, 17459, 17406, 17389,  17459, 17389, 17378, 17780, 17756, 17785, 17784, 17784, 17784,  17756, 17784, 17785, 17713), class = "Date"), year = c("2014",  "2014", "2014", "2014", "2014", "2014", "2014", "2014", "2014",  "2014", "2015", "2015", "2015", "2015", "2015", "2015", "2015",  "2015", "2015", "2015", "2016", "2016", "2016", "2016", "2016",  "2016", "2016", "2016", "2016", "2016", "2017", "2017", "2017",  "2017", "2017", "2017", "2017", "2017", "2017", "2017", "2018",  "2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",  "2018"), start.month.day = c("05-28", "05-28", "05-28", "05-28",  "05-28", "05-28", "05-28", "05-28", "05-28", "05-28", "04-15",  "04-16", "04-25", "04-28", "04-17", "04-18", "04-17", "04-28",  "04-28", "04-27", "04-14", "04-14", "04-14", "04-15", "04-14",  "04-14", "04-14", "04-14", "04-14", "04-14", "04-14", "04-14",  "05-04", "05-04", "05-03", "05-03", "05-05", "05-02", "05-04",  "05-04", "04-01", "04-01", "05-04", "05-04", "05-04", "05-04",  "05-04", "05-04", "05-04", "05-04"), end.month.day = c("07-27",  "07-20", "09-04", "09-04", "07-20", "07-29", "09-04", "09-04",  "07-26", "09-04", "08-17", "09-16", "08-19", "08-20", "08-24",  "08-11", "07-31", "08-13", "08-23", "08-20", "09-04", "09-02",  "07-28", "11-19", "11-03", "10-24", "11-19", "12-10", "07-26",  "07-18", "04-18", "08-01", "08-04", "08-11", "10-20", "08-28",  "08-11", "10-20", "08-11", "07-31", "09-06", "08-13", "09-11",  "09-10", "09-10", "09-10", "08-13", "09-10", "09-11", "07-01" )), row.names = c(NA, -50L), class = "data.frame")

df首先,您希望您的段代表您的时间段的实际长度,因此您需要将它们作为实际日期。否则,段不是周期的正确表示形式

其次,您需要将它们作为日期,以便能够将它们格式化为日期

如果将仅有的月-日字符串转换为日期,则默认情况下会添加年份(当前年份),但仍有负责y轴的
year
变量

综上所述,以下代码适用于您:

df[,5] <- as.Date(df[,5], format='%m-%d')
df[,6] <- as.Date(df[,6], format='%m-%d')

ggplot(df, aes(y=year)) + 
 geom_segment(aes(x= start.month.day,xend=end.month.day,
                  y=year,yend=year),size=2) + 
 facet_wrap(~site,ncol=2) 

df[,5]
p+scale\u x\u datetime(labels=scales::date\u format(“%b”)
@M-M这将不起作用,因为x轴数据是作为字符串而不是日期给出的!正确,我尝试将x轴数据更改为日期,但当我转换为日期时,它仍然包含一个不起作用的年份。@J_F这不起作用,但OP可以调整简单的事情使其起作用。@cherrytree让它添加年份。有一个虚假的一年,它不会出现。比方说1969年吧!:D.p.s.对所有人来说,同一年很重要。
df[,5] <- as.Date(df[,5], format='%m-%d')
df[,6] <- as.Date(df[,6], format='%m-%d')

ggplot(df, aes(y=year)) + 
 geom_segment(aes(x= start.month.day,xend=end.month.day,
                  y=year,yend=year),size=2) + 
 facet_wrap(~site,ncol=2)