简略绘图中的缩写文字标签

时间:2019-04-04 10:12:25

标签: r ggplot2

我有一个ggalluvial plot。 我用来获取绘图的代码是:

ggplot(sample.data,
       aes(y = N, axis1 = N, axis2 = V1, axis3 = V2, axis4 = V5)) +
  geom_alluvium(aes(fill = N, color = N), 
                width = 1/12, alpha = 0.7, 
                knot.pos = 0.4,  reverse = TRUE, show.legend = FALSE) +
  geom_stratum( aes(fill = N), width = 1/8, color = "black",  show.legend = FALSE)+
  geom_label(stat = "stratum", label.strata = TRUE) +
  geom_text( stat = "stratum", label.strata = TRUE, show.legend = TRUE) +
  scale_x_continuous(breaks = 1:4, labels = c("N", "V1", "V2", "V5"))+
  ggtitle("Test2") +
  theme(axis.text.x = element_text(size = 10, face = "bold"),
        axis.text.y = element_blank(),
        axis.title.y = element_blank(),
        axis.ticks.y = element_blank(), 
        legend.position = "top"
        )

从图中可以看出,标签很大且难以辨认。如何缩写它们并在图中添加图例?我希望使用函数来执行此操作,以便可以完全删除第一个axis(N)标签。

此外,如何在层之间添加间隙?

1 个答案:

答案 0 :(得分:0)

我如何缩写标签?

您可以

  • 处理包含标签的数据框列,并对其进行一些字符串操作。例如,它将从标签中提取前 n 个字符或单词并使用它们。但我不确定您是否可以通过这种方式获得理想的结果。

OR

  • 您将带有非缩写标签的列替换为带有缩写标签的新列。例如。直接提供缩写标签。

如何在图例中添加图例?

您可能可以通过设置show.legend=TRUE

添加图例

如何在层之间添加间隙?

如果您想垂直分布地层,可以尝试使用geom_stratum xyyminymax参数(尽管可以复杂)。更简单的方法是为您的阶层设置边界,以便看起来有空隙。您可以通过为边界提供geom_stratum的相应参数-sizecolor来实现。