使用ggplot2在日期轴上绘制圆

时间:2012-11-24 12:01:32

标签: r ggplot2 geometry

现在我用ggplot2画出情节。

我想在我的情节中绘制圆圈。

所以我搜索了它并找到了解决方案。

Draw a circle with ggplot2

但是我不能使用这个解决方案,因为我的情节的x轴是日期格式。

my_plot <- qplot(Day, value, data = target_data_melt, shape = variable, colour = variable, geom="line")
my_plot <- my_plot + scale_x_date(labels = date_format("%Y-%m"))

如何在情节中画圆圈?

有没有办法在Date轴上画圆圈?


target_data_melt看起来像这样。

      Day  variable       value
     

1 2010-10-01 231 0.007009346

     

2 2010-10-03 231 0.005204835

     

3 2010-10-05 231 0.006214004

1 个答案:

答案 0 :(得分:1)

您可以调整您提供的link代码,将x坐标格式化为日期:

require("date")

circle <- function(center_Date = as.Date("2012-11-24"), 
                   center_y = 0, 
                   r.x = 100,
                   r.y = 100,
                   npoints = 100) {
  cycle <- seq(0,2*pi,length.out = npoints)
  xx <- center_Date + r.x * cos(cycle)
  yy <- center_y + r.y * sin(cycle)
  return(data.frame(x = xx, y = yy))
}

示威:

df <- circle()
plot <- ggplot(df, aes(x, y)) + geom_path()
plot(plot)

示例图片(带有调整后的日期和y-center)here

您必须正确设置r.x和r.y以获得完美的圆形(而不是椭圆形)。这应该取决于您在地块中使用的尺度。