ggplot:如何将标签更改为图表上的百分比?

ggplot: How to change labels to percentages on the graph?

这是我的数据集的头部:

structure(list(Aasta = c(2011, 2012, 2013, 2014, 2015, 2016), 
tvs = c("Püsiv töövõimetus", "Püsiv töövõimetus", 
"Püsiv töövõimetus", "Püsiv töövõimetus", "Püsiv töövõimetus", 
"Püsiv töövõimetus"), Protsent = c(0.001, 0.018, 0.014, 
0.012, 0.013, 0.017)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))

这是我的剧情:

ggplot(merilen2, aes(y = Protsent, x = Aasta, color = tvs, label = Protsent))+
  geom_line()+
  geom_point()+
  ggrepel::geom_label_repel(label.size = 0, 
                            label.padding = unit(0.3, "lines"), 
                            size = 3, 
                            min.segment.length = 0.2, 
                            vjust=-0.5,
                            show.legend = F)+
  scale_x_continuous(breaks = merilen2$Aasta, labels = merilen2$Aasta)+
  scale_color_manual(values = cen_cols)+
  labs(x = 'Aasta',
       y = 'Protsent',
       color = 'Töövõime staatus')+
  cen_theme()

这是现在的结果:

我需要图表上的标签作为百分比(小数点后一位),但不知道该由谁来做。

您可以将aes中的label改为-

label = paste0(round(Protsent * 100, 1), '%')

完整代码-

library(ggplot2)

ggplot(merilen2, aes(y = Protsent, x = Aasta, color = tvs, 
                     label = paste0(round(Protsent * 100, 1), '%')))+
  geom_line()+
  geom_point()+
  ggrepel::geom_label_repel(label.size = 0, 
                            label.padding = unit(0.3, "lines"), 
                            size = 3, 
                            min.segment.length = 0.2, 
                            vjust=-0.5,
                            show.legend = F)+
  scale_x_continuous(breaks = merilen2$Aasta, labels = merilen2$Aasta)+
  labs(x = 'Aasta',
       y = 'Protsent',
       color = 'Töövõime staatus')

已删除 scale_color_manual,因为 cen_cols 未定义。

只需添加

  scale_y_continuous(label=scales::label_percent(.1)) +