相关疑难解决方法(0)

如何将一个垂直geom_vline转换为类日期的x轴?

即使我发现哈德利对谷歌的论坛中发帖POSIXctgeom_vline,我无法完成它.我有一个时间序列,并希望绘制1998年,2005年和2010年的垂直线.我尝试使用ggplotqplot语法,但我仍然看不到垂直线,或者在第一个垂直网格上绘制垂直线,整个系列在右边有点奇怪地移动.

gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) +
      layer(geom="line")
gg + geom_vline(xintercept=mydata$datefield[120],linetype=4)
# returns just the time series plot I had before, 
# interestingly the legend contains dotted vertical lines
Run Code Online (Sandbox Code Playgroud)

我的日期字段格式为"1993-07-01",属于班级Date.

r date time-series ggplot2

93
推荐指数
3
解决办法
6万
查看次数

R ggplot2:使用数值标记y轴上的水平线

我在ggplot中有一条水平线,我想在y轴上标注它的值(7.1).

library(ggplot2)
df <- data.frame(y=c(1:10),x=c(1:10))
h <- 7.1
plot1 <- ggplot(df, aes(x=x,y=y)) + geom_point() 
plot2 <- plot1+ geom_hline(aes(yintercept=h))
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

r ggplot2

28
推荐指数
4
解决办法
4万
查看次数

带日期轴的ggplot垂直线

当x轴是datetime(POSIXct)对象时,我在向绘图添加垂直线时遇到一些麻烦.似乎总是想把线放在大纪元.这是一个例子:

df <- data.frame(x=ymd('2011-01-01')+hours(0:24), y=runif(25))
ggplot(df, aes(x=x,y=y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

没有垂直线

现在我尝试在第三个观察时间添加一条线:

ggplot(df, aes(x=x,y=y)) + geom_point() + geom_vline(aes(x=df$x[3]))
Run Code Online (Sandbox Code Playgroud)

垂直线

我做错了什么?

datetime r ggplot2

10
推荐指数
1
解决办法
7388
查看次数

如何在ggplot中为垂直线添加图例?

我试图显示一个折线图,其中一些垂直线作为特定时间点的指标,并有一个标记这些时间点的图例.

根据ggplot2一书中第6.4.4节的例子,我尝试了以下内容

huron<-data.frame(year=1875:1972,level=LakeHuron)

vertDf<-data.frame(years=c(1900,1925,1950),labels=c("A","B","C"))

pltWithLines<-ggplot(huron, aes (x=year,y=level)) +
                              geom_line() + 
                              geom_vline(aes(xintercept=years,color=labels),data=vertDf) + 
                              scale_color_manual("Sample Year",
                                      values=c("A"="blue","B"="red","C"="green"))
Run Code Online (Sandbox Code Playgroud)

这会生成一个图表,其中垂直线具有正确的颜色,但根本没有图例.

这有什么问题?

r legend ggplot2

4
推荐指数
1
解决办法
3397
查看次数

在时间序列数据中为不同日期添加多个 vline

我正在尝试绘制包含多个时间序列数据的折线图,其中每条线显示特定对象随时间的销售趋势 - 在相同的开始日期和结束日期内。我的数据集已经处于“融化”形式,如下所示:

'data.frame':   468 obs. of  3 variables:
 $ date                : Date, format: "2019-04-11" "2019-04-12" "2019-04-13" ...
 $ Object                : chr  "Object1" "Object2" "Object3" "Object 4" ...
 $ daily_sales: int  1 257 178 177 255 240 231 214 193 174 ...
Run Code Online (Sandbox Code Playgroud)

我有一组需要垂直线的日期,它们存储在日期数组中,imp.dates

当我尝试绘制单个图时,vline它工作正常(使用以下代码):

ggplot(df, aes(x=date,
               y=daily_sales,
               colour=Object,
               group=Object)) +
  geom_line() + 
  geom_vline(aes(xintercept=imp.dates[1]),
            linetype=4,
            colour="black")
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试做多个vlines

ggplot(df, aes(x=date,
                   y=daily_sales,
                   colour=Object,
                   group=Object)) +
      geom_line() + 
      geom_vline(aes(xintercept=imp.dates),
                linetype=4,
                colour="black")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error: Aesthetics must be either length 1 or …
Run Code Online (Sandbox Code Playgroud)

r time-series ggplot2 timeserieschart

2
推荐指数
1
解决办法
2129
查看次数

标签 统计

ggplot2 ×5

r ×5

time-series ×2

date ×1

datetime ×1

legend ×1

timeserieschart ×1