gpt4 book ai didi

r - 在ggplot中接受类 "Date"的水平和垂直线有问题吗?

转载 作者:行者123 更新时间:2023-12-01 09:00:25 24 4
gpt4 key购买 nike

我正在尝试根据用户 Didzis Elferts 提供的大量代码在 ggplot 中制作甘特图。我正在尝试添加一条显示今天日期的垂直线,但 ggplot2 包中的 geom_vline 层只是返回 Error: Discrete value provided to Continuous scale。这是我的代码:

    today <- as.Date(Sys.Date(), "%m/%d/%Y")
library(scales)
ggplot(mdfr, aes(time,name, colour = is.critical)) +
geom_line(size = 6) +
xlab("") + ylab("")+
labs(title="Sample Project Progress")+
theme_bw()+
scale_x_datetime(breaks=date_breaks("1 year"))+
geom_vline(aes(xintercept=today))

没有geom_vline 命令的绘图如下plot :

geom_vline 对“日期”字符不起作用的任何原因?

编辑:用于生成绘图的可重现代码:

    ### GANTT CHART 1 ###############3
tasks <- c("Meetings", "Client Calls", "Design", "Bidding", "Construction")
dfr <- data.frame(
name = factor(tasks, levels = tasks),
start.date = c("07/08/2013", "07/08/2013", "07/23/2013", "08/30/2013", "9/30/2013"),
end.date = c("07/12/2013", "07/13/2013", "08/15/2013", "09/12/2013", "12/01/2013"),
is.critical = c(TRUE, FALSE, TRUE, TRUE, TRUE))

mdfr <- melt(dfr, measure.vars = c("start.date", "end.date"))
mdfr$time <- as.POSIXct(strptime(mdfr$value,"%m/%d/%Y"))

最佳答案

您需要在代码中更改两个想法。

首先,至于在 mdfr 中制作 time 列,您使用 as.POSIXct() 应该与 相同今天 - 两个变量应该有相同的格式。

today <- as.POSIXct(Sys.Date(), "%m/%d/%Y")

其次,在today周围的geom_vline()中使用as.numeric()

  + geom_vline(aes(xintercept=as.numeric(today)))

关于r - 在ggplot中接受类 "Date"的水平和垂直线有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18106396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com