我甚至难以表达我的问题 -
如果我展示一下我的目标,可能会更容易理解:
以这个例子为例:
require(tidyverse)
df <- data.frame(planet = rep(c("mars", "jupiter"), each = 10),
date = seq(as.Date("2020-01-01"), as.Date("2020-01-10"), length.out = 10) %>% rep(2),
someNumbers = c(1:10, 6:15)
)
df
planet date someNumbers
1 mars 2020-01-01 1
2 mars 2020-01-02 2
3 mars 2020-01-03 3
4 mars 2020-01-04 4
5 mars 2020-01-05 5
6 mars 2020-01-06 6
7 mars 2020-01-07 7
8 mars 2020-01-08 8
9 mars 2020-01-09 9
10 mars 2020-01-10 10
11 jupiter 2020-01-01 6
12 jupiter 2020-01-02 7
13 jupiter 2020-01-03 8
14 jupiter 2020-01-04 9
15 jupiter 2020-01-05 10
16 jupiter 2020-01-06 11
17 jupiter 2020-01-07 12
18 jupiter 2020-01-08 13
19 jupiter 2020-01-09 14
20 jupiter 2020-01-10 15
如果我绘制
ggplot(df, aes(date, someNumbers, group = planet)) + geom_bar(stat = "identity", position = "dodge", aes(fill = planet))
我可以看到这两个行星在
someNumbers
中遵循相同的顺序。
我想做的是将所有的 mars
蓝色条形图向左移动 4-5 天,以便我可以轻松地进行视觉比较。我可以通过以下方式实现:
df.mars <- subset(df, planet == "mars")
df.jupiter <- subset(df, planet == "jupiter")
df.mars$date <- df.mars$date - 5 #subset mars and manually minus 5
bind_rows(df.mars, df.jupiter) %>% ggplot(aes(date, someNumbers, group = planet)) + geom_bar(stat = "identity", position = "dodge", aes(fill = planet))
然而,我实际上正在改变mars
的date
底层值。我能否在不实际更改底层date
值的情况下仅通过任意量向左或向右移动所有mars
geom_bar()
来实现相同的效果?理想情况下,我将有两个x轴标签:一个用于mars
,一个用于jupiter
。抱怨:当我尝试使用covid19数据集绘制按国家分组的条形图时,出现了这个问题。
Y-axis = #cases
X-axis = Date
我想把所有的USA
条形图向左移动n天
,这样我就可以说"USA趋势正在追随意大利,但滞后n天
"。