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

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

背景:

  1. 我在
    R
    上使用
    RStudio
    ,从
    .csv
    文件 (
    meu_primeiro_csv
    ) 中制作基本的
    ggplot()
  2. 这个
    .csv
    文件是使用
    read_csv()
    导入的,我使用
    col_types = list()
    手动输入每列的类型。因此,这些类型是正确的;
  3. 其中一列是分类变量,对于我正在制作的
    ggplot()
    非常重要:
    TP_DEPENDENCIA
    ,因为它不仅在
    geom_point()
    上用作
    color
    shape
    ,而且还用于作为
    facet_wrap()
    ;
  4. TP_DEPENDENCIA
    col_factor()
    类型,并且有四个可能的值:
    1
    2
    3
    4
    。在该代码中,每个值代表不同类型的学校:
    1
    =
    Federal
    2
    =
    Estadual
    3
    =
    Municipal
    4
    =
    Privada
    。没有其他类型的学校,也没有
    NA
    ,这个
    col_factor()
    很整洁;
  5. 我设法使用
    col_factor()
    参数将
    facet_wrap()
    “数字”翻译成
    labeller
    上真正的“字符串”含义,如tamtam对“在face_wrap() ggplot2中更改facet标签”的建议所建议的那样。 2020 年 10 月 29 日';
  6. 但是,
  7. labeller
    上没有
    geom_point()
    参数,因此右侧图表的图例显示“4,2,3,1”,而不是这些代码代表的名称。

问题:

    如何将
  1. <fct>
     类型 
    TP_DEPENDENCIA
     列的数字编码值“翻译”为其图表图例上的真实文本含义?
  2. 是否可以通过像我在
  3. 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()
    
r ggplot2 rstudio facet-wrap geom-point
1个回答
0
投票
使用

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()
但是,您应该考虑仅使用 

一个

 美学而不是三个来显示变量 
TP_DEPENDENCIA。尝试绘制仅使用 TP_DEPENDENCIA
 来表示facet_wrap、
颜色、形状的绘图。您将获得相同数量的信息,并且您的图表将更加简单。选择您认为最有效的一个。

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