R语言 在ggplot2中折线图的两端添加数据值标签

h4cxqtbf  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(220)

我想说明2017年到2021年中国律师数量的变化,我做得很成功,但我想在折线图的两端添加数据值标签,以说明前后的变化。
下面是代码:

category<-total_lawyers|>
              pivot_longer(cols =2:6, names_to = "year", values_to = "total" )

图表

category|>
  ggplot(aes(year, total, group=category,color=category))+
  geom_line(size=1.5)+scale_y_log10()+
  theme_stata()+
  theme(axis.title.y = element_blank(),
        axis.title.x = element_blank())[


](https://i.stack.imgur.com/uuSIS.png
我想添加的是只在两端添加数据标签。

yzuktlbb

yzuktlbb1#

除了像注解中那样做手动注解外,你还可以过滤你的数据,只显示你想突出显示的数据,然后让ggplot为你做所有的美学Map。下面是一个使用内置mtcars数据集的例子。数据集被过滤以获得x轴上绘制的值的最小值或最大值,然后使用过滤后的数据集用额外的几何图形绘制那些点:

library(dplyr)
library(ggplot2)

data_to_highlight <-
  mtcars |>
  group_by(cyl) |>
  filter(disp == min(disp) | disp == max(disp))

ggplot()+
  geom_line(data = mtcars,
            aes(x = disp,
                y = mpg,
                color = as.factor(cyl)))+
  geom_point(data = data_to_highlight,
             aes(x = disp,
                 y = mpg,
                 color = as.factor(cyl)))

注:您也可以将值Map为文本,并做一些更有趣的事情。这里disp变量的最小/最大点用点突出显示,对应的mpg值用文本写入:

ggplot()+
  geom_line(data = mtcars,
            aes(x = disp,
                y = mpg,
                color = as.factor(cyl)))+
  geom_point(data = data_to_highlight,
             aes(x = disp,
                 y = mpg,
                 color = as.factor(cyl)),
             size = 6, shape = 16)+
  geom_text(data = data_to_highlight,
            aes(x = disp,
                y  = mpg,
                label = mpg),
            size = 2,
            color = "white")

相关问题