Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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:为什么坐标笛卡尔(xlim…)不适用于比例x日期?_R_Ggplot2_Plot_Time_Axis Labels - Fatal编程技术网

R ggplot:为什么坐标笛卡尔(xlim…)不适用于比例x日期?

R ggplot:为什么坐标笛卡尔(xlim…)不适用于比例x日期?,r,ggplot2,plot,time,axis-labels,R,Ggplot2,Plot,Time,Axis Labels,我有这张图,展示了在新冠病毒-19之前和之后的手术过程 我看到的时间跨度介于2017-01-02和2020-12-31之间(yyyy-mm-dd)。但是,绘图自动包括2016年12月和2021年3月。我想略去这两次休息 首先 尝试 我试过了 (1) 。。。坐标笛卡尔(xlim=截止日期(c('2017年2月1日,'2020年12月31日'),格式=“%d/%m/%Y”)+ 但这并不奏效 (2) 。。。xlim(截至日期(c('2017年2月1日','2020年12月31日'),格式=“%d/%

我有这张图,展示了在新冠病毒-19之前和之后的手术过程

我看到的时间跨度介于2017-01-02和2020-12-31之间(
yyyy-mm-dd
)。但是,绘图自动包括2016年12月和2021年3月。我想略去这两次休息

首先

尝试

我试过了

(1)
。。。坐标笛卡尔(xlim=截止日期(c('2017年2月1日,'2020年12月31日'),格式=“%d/%m/%Y”)+

但这并不奏效

(2)
。。。xlim(截至日期(c('2017年2月1日','2020年12月31日'),格式=“%d/%m/%Y”)+…

这是可行的,但是无论在
scale\u x\u date(date\u break=…)中指定了什么,x轴都变成了年。

预期产出

我的目的是省略2016年12月和2021年3月的部分:

数据样本

b <- structure(list(diagnosis = c("2017-10-19", "2017-07-11", "2020-06-30", 
"2020-06-27", "2017-01-04", "2017-12-07", "2017-09-18", "2020-07-27", 
"2020-08-28", "2020-12-29", "2018-04-12", "2020-06-20", "2020-08-29", 
"2018-02-05", "2018-01-12", "2017-07-15", "2018-03-07", "2020-02-29", 
"2019-08-24", "2017-08-08", "2018-11-27", "2017-03-15", "2017-05-12", 
"2020-10-22", "2019-08-31", "2017-11-17", "2019-04-17", "2018-11-15", 
"2018-02-08", "2019-08-09", "2019-10-06", "2017-08-30", "2019-05-09", 
"2017-06-05", "2017-10-04", "2018-01-27", "2017-06-16", "2019-03-29", 
"2017-06-16", "2018-07-19", "2020-04-23", "2020-01-31", "2020-06-27", 
"2019-12-11", "2019-08-13", "2017-05-07", "2020-05-08", "2020-09-05", 
"2019-12-18", "2018-07-24", "2017-07-31", "2017-01-23", "2018-09-08", 
"2018-12-18", "2017-08-01", "2019-04-11", "2017-05-12", "2019-03-15", 
"2019-06-12", "2017-05-10", "2020-10-27", "2018-08-26", "2019-06-03", 
"2020-07-31", "2017-12-02", "2018-11-07", "2018-03-23", "2019-08-18", 
"2019-08-30", "2018-07-23", "2018-08-08", "2018-10-10", "2019-05-26", 
"2017-11-18", "2020-07-19", "2017-02-07", "2017-08-15", "2020-01-05", 
"2019-07-28", "2017-05-28", "2017-01-02", "2018-09-25", "2017-03-26", 
"2017-04-24", "2018-03-26", "2020-12-01", "2018-09-27", "2019-09-26", 
"2017-10-06", "2019-01-11", "2020-08-15", "2017-02-06", "2018-06-07", 
"2018-03-15", "2017-12-17", "2017-02-08", "2019-11-02", "2020-12-05", 
"2017-09-16", "2017-06-18"), cons_week = c(42, 28, 183, 182, 
1, 49, 38, 187, 191, 209, 67, 181, 191, 58, 54, 28, 62, 165, 
138, 32, 100, 11, 19, 199, 139, 46, 120, 98, 58, 136, 144, 35, 
123, 23, 40, 56, 24, 117, 24, 81, 173, 161, 182, 154, 137, 18, 
175, 192, 155, 82, 31, 4, 88, 103, 31, 119, 19, 115, 128, 19, 
200, 86, 127, 187, 48, 97, 64, 137, 139, 82, 84, 93, 125, 46, 
185, 6, 33, 157, 134, 21, 1, 91, 12, 17, 65, 205, 91, 143, 40, 
106, 189, 6, 75, 63, 50, 6, 148, 205, 37, 24), corona = structure(c(2L, 
2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
1L, 2L, 2L), .Label = c("C19", "Normal"), class = "factor")), row.names = c(NA, 
-100L), class = c("tbl_df", "tbl", "data.frame"))
b使用
expand=c(0,0)


太好了,谢谢<代码>扩展(0.01,0)
成功了!
ggplot(lin.model,
       aes(x = cons_week_dt, y = n, color = corona, fill = corona)) +
  geom_point(size = 5, shape = 21) +
  geom_smooth(lty = 2, show.legend = F) + 
  geom_smooth(se = F, method = lm, color = "black", show.legend = F) +
  scale_color_manual(name = "",
                     values = c("#8B3A62", "#6DBCC3"),
                     labels = c("COVID-19", "Normal"),
                     guide = guide_legend(reverse=TRUE)) + 
  scale_fill_manual(name = "",
                    values = alpha(c("#8B3A62", "#6DBCC3"), .25),
                    labels = c("COVID-19", "Normal"),
                    guide = guide_legend(reverse=TRUE)) + 
  annotate("text", x = as.Date("2020-03-13"), y = 26.5,
           label = "Lockdown\n2020-03-11", cex = 5, color = "red") + 
  scale_x_date(name = "",
               date_breaks = "3 months", date_labels = "%b%Y", expand = c(0.07, 0)) +
  scale_y_continuous(name = "",
                     breaks = seq(0, 30, 5), limits = c(0, 30)) + 
  theme(axis.title.y = element_text(color = "grey20", 
                                    size = 17, 
                                    face="bold", 
                                    margin=ggplot2::margin(r=10)),
        axis.line = element_line(colour = "black"),
        axis.text.x = element_text(size = 15, angle = 45, hjust = 1),
        axis.text.y = element_text(size = 15),
        panel.grid.major = element_line(colour = "grey90"),
        panel.grid.minor = element_line(colour = "grey90"),
        panel.border = element_blank(),
        panel.background = element_blank(),
        legend.position = "top",
        legend.key = element_rect(fill = "white"),
        legend.text=element_text(size=15)) 
b <- structure(list(diagnosis = c("2017-10-19", "2017-07-11", "2020-06-30", 
"2020-06-27", "2017-01-04", "2017-12-07", "2017-09-18", "2020-07-27", 
"2020-08-28", "2020-12-29", "2018-04-12", "2020-06-20", "2020-08-29", 
"2018-02-05", "2018-01-12", "2017-07-15", "2018-03-07", "2020-02-29", 
"2019-08-24", "2017-08-08", "2018-11-27", "2017-03-15", "2017-05-12", 
"2020-10-22", "2019-08-31", "2017-11-17", "2019-04-17", "2018-11-15", 
"2018-02-08", "2019-08-09", "2019-10-06", "2017-08-30", "2019-05-09", 
"2017-06-05", "2017-10-04", "2018-01-27", "2017-06-16", "2019-03-29", 
"2017-06-16", "2018-07-19", "2020-04-23", "2020-01-31", "2020-06-27", 
"2019-12-11", "2019-08-13", "2017-05-07", "2020-05-08", "2020-09-05", 
"2019-12-18", "2018-07-24", "2017-07-31", "2017-01-23", "2018-09-08", 
"2018-12-18", "2017-08-01", "2019-04-11", "2017-05-12", "2019-03-15", 
"2019-06-12", "2017-05-10", "2020-10-27", "2018-08-26", "2019-06-03", 
"2020-07-31", "2017-12-02", "2018-11-07", "2018-03-23", "2019-08-18", 
"2019-08-30", "2018-07-23", "2018-08-08", "2018-10-10", "2019-05-26", 
"2017-11-18", "2020-07-19", "2017-02-07", "2017-08-15", "2020-01-05", 
"2019-07-28", "2017-05-28", "2017-01-02", "2018-09-25", "2017-03-26", 
"2017-04-24", "2018-03-26", "2020-12-01", "2018-09-27", "2019-09-26", 
"2017-10-06", "2019-01-11", "2020-08-15", "2017-02-06", "2018-06-07", 
"2018-03-15", "2017-12-17", "2017-02-08", "2019-11-02", "2020-12-05", 
"2017-09-16", "2017-06-18"), cons_week = c(42, 28, 183, 182, 
1, 49, 38, 187, 191, 209, 67, 181, 191, 58, 54, 28, 62, 165, 
138, 32, 100, 11, 19, 199, 139, 46, 120, 98, 58, 136, 144, 35, 
123, 23, 40, 56, 24, 117, 24, 81, 173, 161, 182, 154, 137, 18, 
175, 192, 155, 82, 31, 4, 88, 103, 31, 119, 19, 115, 128, 19, 
200, 86, 127, 187, 48, 97, 64, 137, 139, 82, 84, 93, 125, 46, 
185, 6, 33, 157, 134, 21, 1, 91, 12, 17, 65, 205, 91, 143, 40, 
106, 189, 6, 75, 63, 50, 6, 148, 205, 37, 24), corona = structure(c(2L, 
2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
1L, 2L, 2L), .Label = c("C19", "Normal"), class = "factor")), row.names = c(NA, 
-100L), class = c("tbl_df", "tbl", "data.frame"))
library(ggplot2)

ggplot(lin.model,
       aes(x = cons_week_dt, y = n, color = corona, fill = corona)) +
  geom_point(size = 5, shape = 21) +
  geom_smooth(lty = 2, show.legend = F) + 
  geom_smooth(se = F, method = lm, color = "black", show.legend = F) +
  scale_color_manual(name = "",
                     values = c("#8B3A62", "#6DBCC3"),
                     labels = c("COVID-19", "Normal"),
                     guide = guide_legend(reverse=TRUE)) + 
  scale_fill_manual(name = "",
                    values = alpha(c("#8B3A62", "#6DBCC3"), .25),
                    labels = c("COVID-19", "Normal"),
                    guide = guide_legend(reverse=TRUE)) + 
  annotate("text", x = as.Date("2020-03-13"), y = 26.5,
           label = "Lockdown\n2020-03-11", cex = 5, color = "red") + 
  scale_x_date(name = "",
               date_breaks = "3 months", date_labels = "%b%Y", expand = c(0, 0)) +
  scale_y_continuous(name = "",
                     breaks = seq(0, 30, 5), limits = c(0, 30)) + 
  theme(axis.title.y = element_text(color = "grey20", 
                                    size = 17, 
                                    face="bold", 
                                    margin=ggplot2::margin(r=10)),
        axis.line = element_line(colour = "black"),
        axis.text.x = element_text(size = 15, angle = 45, hjust = 1),
        axis.text.y = element_text(size = 15),
        panel.grid.major = element_line(colour = "grey90"),
        panel.grid.minor = element_line(colour = "grey90"),
        panel.border = element_blank(),
        panel.background = element_blank(),
        legend.position = "top",
        legend.key = element_rect(fill = "white"),
        legend.text=element_text(size=15))