R的ggplot的geom_point的标签:是否有类似标签的解决方案来“翻译”因子值?

ykejflvf  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(130)

上下文:

1.我在RStudio上使用R,从一个.csv文件(meu_primeiro_csv)生成一个基本的ggplot();
1.这个.csv文件是使用read_csv()导入的,我使用col_types = list()手动输入了每一列的类型。因此,类型是正确的;
1.其中一列是 * 分类变量 *,对于我正在创建的ggplot()非常重要:TP_DEPENDENCIA,因为它不仅作为colorshape用于geom_point(),而且作为facet_wrap()使用;

  1. TP_DEPENDENCIAcol_factor()类型,有四个可能的值:1234。这是一个代码,其中每个值代表不同类型的学校:1 = Federal2 = Estadual3 = Municipal4 = Privada。没有其他类型的学校,也没有NA s,这个col_factor()是整洁的;
    1.通过使用labeller参数,我设法将col_factor()的“数字”转换为它们在facet_wrap()上的真正“字符串”含义,如by tamtam's answer for "Changing facet labels in face_wrap() ggplot2" on 'Oct 29, 2020'所建议的那样;
    1.但是,geom_point()上没有labeller参数,因此右侧图形的图例显示“4,2,3,1”,而不是这些代码表示的名称。

问题:

1.如何将<fct>类型TP_DEPENDENCIA列的数字编码值“翻译”为图表图例中的真实文本含义?
1.有没有可能通过像我在facet_wrap()上所做的那样使用一些表示变化来实现我在问题1中所要求的,而不改变存储在.csv文件中的值?

问题图:

生成上图的代码:

ggplot(
  data    = meu_primeiro_csv,
  mapping = aes(y = QT_SALAS_UTILIZADAS, x = QT_MAT_BAS)) +
   geom_point(mapping = aes(color = TP_DEPENDENCIA, shape = TP_DEPENDENCIA)) +
   facet_wrap(~TP_DEPENDENCIA, labeller = labeller(TP_DEPENDENCIA = c(`1` = "Federal", `2` = "Estadual", `3` = "Municipal", `4` = "Privada"))) +
   labs(
     title    = "Educação básica: total de alunos × total de salas",
     subtitle = "Totais por tipo de escola: municipal, estadual, federal, ou privada",
     y        = "Salas utilizadas pela escola",
     x        = "Matrículas na educação básica",
     color    = "Tipo de escola",
     shape    = "Tipo de escola"
   ) +
   geom_smooth(method = "lm") +
   scale_color_colorblind()

CSV用于可重复的示例:

9bfwbjaz

9bfwbjaz1#

使用case_when在数据集中创建一个带有TP_DEPENDENCIA标签的新变量。使用新变量代替TP_DEPENDENCIA,您将获得图例中的标签。

meu_primeiro_csv %>% 
  mutate(tipo_de_escola = case_when(TP_DEPENDENCIA == 1 ~ "Federal", 
                                    TP_DEPENDENCIA == 2 ~ "Estadual", 
                                    TP_DEPENDENCIA == 3 ~ "Municipal"
                                    TP_DEPENDENCIA == 4 ~ "Privada"
                                    )
  ) %>% 
  ggplot(
    mapping = aes(y = QT_SALAS_UTILIZADAS, x = QT_MAT_BAS)) +
  geom_point(mapping = aes(color = tipo_de_escola, shape = tipo_de_escola)) +
  facet_wrap(~tipo_de_escola) +
  labs(
    title    = "Educação básica: total de alunos × total de salas",
    subtitle = "Totais por tipo de escola: municipal, estadual, federal, ou privada",
    y        = "Salas utilizadas pela escola",
    x        = "Matrículas na educação básica",
    color    = "Tipo de escola",
    shape    = "Tipo de escola"
  ) +
  geom_smooth(method = "lm") +
  scale_color_colorblind()

但是,您应该考虑仅使用 one 美学而不是三个美学来显示变量TP_DEPENDENCIA。尝试在只使用TP_DEPENDENCIA来绘制facet_wrap、* 或 * color、* 或 * shape的情况下绘制图。你会有同样多的信息,你的图表会更简单。选择一个你认为最好的。

相关问题