我正在研究R中的冲积图,其依据是拼写vignette中的“学生课程”示例。我希望能够通过在每个轴上标记冲积层来在整个图中跟踪单个队列/冲积层(在专业数据集中为一个学生)。但是,我发现它仅在将lode.guidance(在geom_flow中)设置为“ zigzag”且没有其他设置的情况下可以使用。
使用小插图示例,您可以按如下方式用学生证号标记Alluvia。我对小插图示例所做的唯一更改都带有注释标记:
library(ggplot2)
library(ggalluvial)
data(majors)
majors$curriculum <- as.factor(majors$curriculum)
ggplot(majors,
aes(x = semester, stratum = curriculum, alluvium = student,
fill = curriculum, label = student)) + #changed from label = alluvium
scale_fill_brewer(type = "qual", palette = "Set2") +
geom_flow(stat = "alluvium", lode.guidance = "frontback",
color = "darkgray") + #can change lode.guidance parameter here in geom_flow
geom_stratum() +
geom_text(stat = "alluvium", size = 3) #added this geom_text to get the label
产生以下冲积图:
(image of inconsistent flows using frontback)
在显示冲积层(一个学生)从一个轴到另一个轴的运动时存在一些不一致之处。一些学生在从一个轴到另一个轴的转换中被“拖延了”。例如,在从CURR3到CURR5的流程中,学生10变为学生2。在同一班次中,学生6变为学生10,依此类推。
除“ zigzag”以外,其他所有lode.guidance设置(向前,向右,向后,向左,向前,向右,向左,向后,向左,向右)都会出现相同的问题,完美显示了它。 (image of correct flows using zigzag)
我的问题是:是否应该使用所有lode.guidance设置都可以使用重金属从轴到轴跟踪单个冲积物,或者这是包装中的错误?还是“ zigzag”是唯一用于跟踪冲积层的lode.guidance参数?
对此提供的任何帮助,我们将不胜感激!当然,对我的图表使用“ zigzag”是可行的,但是我想让所有人都知道这个问题在那里,看看是否有人可以消除我的困惑。
当然,无论参数设置如何,每个冲积层都应对应一种情况。这里的问题是,冲积统计(统计转换)被用于在different参数设置下在图中生成两层:lode.guidance
设置为"frontback"
的流层和lode.guidance
设置文本层]默认为"zigzag"
。 a recent package vignette中对此进行了简要讨论,但没有充分的文档说明。
一种解决方案是确保对绘图中任何统计信息的每次使用都传递相同的参数。另一个是设置一个全局参数,该参数控制每个统计信息的默认设置。两者都在下面生成我认为您要记住的情节。
library(ggalluvial)
#> Loading required package: ggplot2
data(majors)
majors$curriculum <- as.factor(majors$curriculum)
# apply the same parameter setting to every instance of the alluvium stat
ggplot(majors,
aes(x = semester, stratum = curriculum, alluvium = student,
fill = curriculum, label = student)) +
scale_fill_brewer(type = "qual", palette = "Set2") +
geom_flow(stat = "alluvium", lode.guidance = "frontback",
color = "darkgray") +
geom_stratum() +
geom_text(stat = "alluvium", lode.guidance = "frontback", size = 3)
# alternatively, set a package-specific global option
options(ggalluvial.lode.guidance = "frontback")
ggplot(majors,
aes(x = semester, stratum = curriculum, alluvium = student,
fill = curriculum, label = student)) +
scale_fill_brewer(type = "qual", palette = "Set2") +
geom_flow(stat = "alluvium", color = "darkgray") +
geom_stratum() +
geom_text(stat = "alluvium", size = 3)
由reprex package(v0.3.0)在2020-02-05创建