我正在使用的数据集有一些奇怪的行为。我先绘制一个点图层,然后再绘制一个线图层,然后再绘制一个标签子集。但是标签正在删除线和点图层。我无法在另一个数据集中复制问题,也无法锻炼正在发生的事情。
下面是给出问题的代码:
#Have a look at the data:
>head(df)
# A tibble: 6 x 5
p.start p.end year value change
<dbl> <dbl> <int> <dbl> <dbl>
1 0 1 2017 -4928. 1144.
2 1 2 2017 0 -798.
3 2 3 2017 687. -3400.
4 3 4 2017 3438. -3063.
5 4 5 2017 5978. -2400.
6 5 6 2017 7988. -2023.
>tail(df)
# A tibble: 6 x 5
p.start p.end year value change
<dbl> <dbl> <int> <dbl> <dbl>
1 96 97 2017 208759. 23221.
2 97 98 2017 248919. 28333.
3 98 99 2017 334171. 36818.
4 99 100 2017 1104671. 113244.
5 99.5 100 2017 1709530. 174812.
6 99.9 100 2017 4847340. 504441
#Create the relevant plot
library('ggplot2')
ggplot(df, aes(x = p.start, y = change)) +
geom_point() + #plot the points and lines
geom_line() +
geom_text(data = subset(df, p.start >= 99), #plot a subset labels
aes(x = p.start, y = value, label = p.start))
您会看到geom_text()
删除了geom_point()
和geom_line()
。我尝试了'nudge_x',但是没有什么不同。我还尝试以不同的顺序绘制图层,但这没有什么不同。
我尝试使用其他数据集来做到这一点,并且有效:
library('tibble')
#set rownames to use as labels
df2 <- mtcars %>%
rownames_to_column('name')
#plot
ggplot(df2, aes(x = mpg, y = hp)) +
geom_point() + #plot the points and lines
geom_line() +
geom_text(data = subset(df, cyl > 4), #plot a subset of labels
aes(x = mpg, y = hp, label = name))
一切正常:标签显示在点和线上。
导致此问题的我的第一个绘图/数据出了什么问题?