【问题标题】:ggplot geom_tile right justifyggplot geom_tile 右对齐
【发布时间】:2016-04-14 14:35:28
【问题描述】:

我正在尝试使用 ggplot2 创建本质上是甘特图。我目前在 ggplot2 中使用 geom_tile 选项来产生非常接近我需要的东西。 x 轴是月份,y 轴是任务,块的颜色是该月的工作小时数。

问题:绘制的块以月份为中心。我需要它们正确对齐,以便当出现一个月时,该块位于显示该月的垂直网格线的右侧。

geom_tile 是否有类似 hjust 的选项?到目前为止,这是我的代码:

myGanttPlot <- ggplot(data=gantt_data, aes(x=workMonth, y=myTasks, fill=Hours, height=0.5)) +
              geom_tile(hjust=1.0) + 
              scale_fill_distiller(palette="RdYlGn") 

我收到此代码的错误“未知参数:hjust”。我应该使用更好的语法吗?

【问题讨论】:

  • 转移workMonth 的值应该可以解决这个问题。 aes(x=workMonth + 0.5, ...) 能满足你的需要吗?
  • 我忘了说 workMonth 是 POSIXct 类型。但是,是的,如果我添加 15 天以使日期落在月中,这似乎可行。好主意——谢谢!

标签: r ggplot2 gantt-chart


【解决方案1】:

将 workMonth 的值移动约 15 天应该通过将图块在月份之间居中而不是在它们上来解决这个问题。

ggplot(data=gantt_data, aes(x=workMonth + 60*60*24*15, y=myTasks, fill=Hours, height=0.5)) +
              geom_tile() + 
              scale_fill_distiller(palette="RdYlGn") 

如果没有可重现的示例,我无法测试上面的代码,所以如果这能解决您的问题,请告诉我。

【讨论】:

  • 是的,问题解决了。我使用这些函数将 15 天添加到我的 POSIXct 时间变量来完成上述操作。我使用了此处概述的过程:stackoverflow.com/questions/11922181/…
  • 是的,POSIXct 日期以秒为单位,因此您只需添加 60*60*24*15 秒即可为您的日期添加 15 天。我已经相应地更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 2012-05-11
  • 2018-08-14
  • 2018-03-09
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
相关资源
最近更新 更多