更改 ggpattern R 中的图例标题

问题描述 投票:0回答:1

所以我尝试使用 ggpattern 包在 R 中可视化我的数据。问题是我似乎无法使用指南功能编辑图例的标题。在进一步讨论之前,让我先展示一下数据

     tag Center  n n_tag      persen
1  lisan     же 11  2142 0.005135387
2 medrus     же  6  2588 0.002318393
3 medsos     же 14  2778 0.005039597
4  puisi     же 15  2622 0.005720824
5  lisan     ну 39  2142 0.018207283
6  puisi     ну 13  2622 0.004958047

这是使用 ggpattern 包的可视化:

如您所见,图例的标题当前为“Center”。我想把它改成“Legenda”。

到目前为止,这是我尝试过使用的代码,但没有成功:

judul <- paste("Sebaran leksikon", kata_difilter, "\n", "dalam Korpus Nasional Rusia") 
subjudul <- paste("Jumlah token: ", ftj)
viz_akhir <- ggplot(df_viz, aes(tag, persen, fill=Center)) +
  geom_bar_pattern(stat="identity",
                   position=position_dodge(),
                   pattern_color = NA,
                   pattern_fill = "black",
                   pattern_density = 0.25,
                   pattern_spacing = 0.010,
                   pattern_key_scale_factor = 0.70,
                   aes(pattern=Center)) +
  scale_fill_grey(start = 0, end = .9) + #untuk b&w
  theme_light() +
  labs(title=judul, subtitle=subjudul) +
  xlab("Tag korpus") + ylab("Persentase dalam korpus") +
  guides(pattern=guides_legend(title="Legenda"))
  theme(plot.title=element_text(hjust=0.5, face="bold", size=15),
        plot.subtitle=element_text(hjust=0.5, size=8))
print(viz_akhir)

这是该代码的可视化:

它会创建一个新的图例来代替更改 ggpattern 可视化中的图例。

有人知道解决办法吗?预先感谢!

r ggplot2 visualization corpus ggpattern
1个回答
0
投票

您将

fill
pattern
美学映射到同一变量,因此您只需为这些美学指定相同的名称即可组合图例。

您的问题中没有包含

kata_difilter
ftj
,因此该图无法完全重现,但我重新创建了
judul
subjudul
的修改版本,因此以下代码应该适合您:

ggplot(df_viz, aes(tag, persen, fill = Center)) +
  geom_bar_pattern(stat = "identity",
                   position = position_dodge(),
                   pattern_color = NA,
                   pattern_fill = "black",
                   pattern_density = 0.25,
                   pattern_spacing = 0.010,
                   pattern_key_scale_factor = 0.70,
                   aes(pattern = Center)) +
  scale_fill_grey(start = 0, end = 0.9) + 
  theme_light() +
  labs(title = judul, 
       subtitle = subjudul,
       x = "Tag korpus", 
       y = "Persentase dalam korpus",
       pattern = "Legenda",
       fill = "Legenda") +
  theme(plot.title    = element_text(hjust = 0.5, face = "bold", size = 15),
        plot.subtitle = element_text(hjust = 0.5, size = 8))

© www.soinside.com 2019 - 2024. All rights reserved.