上下文:
1.我在RStudio
上使用R
,从一个.csv
文件(meu_primeiro_csv
)生成一个基本的ggplot()
;
1.这个.csv
文件是使用read_csv()
导入的,我使用col_types = list()
手动输入了每一列的类型。因此,类型是正确的;
1.其中一列是 * 分类变量 *,对于我正在创建的ggplot()
非常重要:TP_DEPENDENCIA
,因为它不仅作为color
和shape
用于geom_point()
,而且作为facet_wrap()
使用;
TP_DEPENDENCIA
是col_factor()
类型,有四个可能的值:1
、2
、3
或4
。这是一个代码,其中每个值代表不同类型的学校:1
=Federal
、2
=Estadual
、3
=Municipal
或4
=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用于可重复的示例:
1条答案
按热度按时间9bfwbjaz1#
使用
case_when
在数据集中创建一个带有TP_DEPENDENCIA
标签的新变量。使用新变量代替TP_DEPENDENCIA
,您将获得图例中的标签。但是,您应该考虑仅使用 one 美学而不是三个美学来显示变量
TP_DEPENDENCIA
。尝试在只使用TP_DEPENDENCIA
来绘制facet_wrap、* 或 * color、* 或 * shape的情况下绘制图。你会有同样多的信息,你的图表会更简单。选择一个你认为最好的。