Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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 消除y轴和第一个x值之间的间隙_R_Date_Ggplot2_Axis Labels - Fatal编程技术网

R 消除y轴和第一个x值之间的间隙

R 消除y轴和第一个x值之间的间隙,r,date,ggplot2,axis-labels,R,Date,Ggplot2,Axis Labels,我需要消除x轴上的间隙 我曾尝试使用scale\u x\u continuous,但结果是: 错误:提供给连续刻度的离散值 我相信这一定和数据的日期格式有关 示例数据: x y date 1 -631152000 -1.018 1950-01-01 01:32:40 2 -628473600 -1.143 1950-02-01 01:32:40 3 -626054400 -1.290 1950-03-01 01:32:40 4 -

我需要消除x轴上的间隙

我曾尝试使用
scale\u x\u continuous
,但结果是:

错误:提供给连续刻度的离散值

我相信这一定和数据的日期格式有关

示例数据:

x      y                date
1    -631152000 -1.018 1950-01-01 01:32:40
2    -628473600 -1.143 1950-02-01 01:32:40
3    -626054400 -1.290 1950-03-01 01:32:40
4    -623376000 -1.061 1950-04-01 01:32:40
5    -620784000 -1.416 1950-05-01 01:32:40
6    -618105600 -1.372 1950-06-01 01:32:40
7    -615513600 -1.334 1950-07-01 01:32:40
8    -612835200 -1.050 1950-08-01 01:32:40
9    -610156800 -0.578 1950-09-01 01:32:40
10   -607564800 -0.395 1950-10-01 01:32:40
用于创建绘图的代码:

Plot <- ggplot(d2,aes(x = date,
              y = y)) + 
  geom_area(data=subset(d2, y<=0), fill="blue") + 
  geom_area(data=subset(d2, y>=0), fill="red") + 
  scale_y_continuous(name = "MEI")+
  xlab("Year")+
  theme(axis.text.y   = element_text(size=24),
        axis.text.x   = element_text(size=24),
        axis.title.y  = element_text(size=24),
        axis.title.x  = element_text(size=24),
        panel.background = element_blank(),
        panel.grid.major = element_line(colour = "grey"), 
        strip.background = element_blank(),
        panel.border = element_rect(colour = "black", fill = NA),
        axis.line = element_line(colour = "black"))

Plot您可以使用
scale\u x\u datetime
expand
参数来删除轴和数据起点之间的空间。(您也可以在缩放y(x)\连续和其他…)中使用此选项)

#您的数据-调整为包含pos/neg y值

d2数据类型为“POSIXct”
# your data - tweaked to include pos / neg y values
d2 <- read.table(text="x      y                date
1    -631152000 -1.018 '1950-01-01 01:32:40'
2    -628473600 -1.143 '1950-02-01 01:32:40'
3    -626054400 -1.290 '1950-03-01 01:32:40'
4    -623376000 -1.061 '1950-04-01 01:32:40'
5    -620784000 -1.416 '1950-05-01 01:32:40'
6    -618105600 1.372 '1950-06-01 01:32:40'
7    -615513600 1.334 '1950-07-01 01:32:40'
8    -612835200 1.050 '1950-08-01 01:32:40'
9    -610156800 0.578 '1950-09-01 01:32:40'
10   -607564800 0.395 '1950-10-01 01:32:40'", header=TRUE)

# create date class and tag for y being pos / negative
d2$date <- as.POSIXct(d2$date)
d2$tag <- d2$y < 0

library(ggplot2)  

ggplot(d2,aes(x = date, y = y, fill=tag)) + 
                      geom_area() + 
                      scale_y_continuous(name = "MEI")+
                      scale_x_datetime(expand=c(0,0))