如何避免使用 ggtern/ggplot2 剪切标签(如 xpd=TRUE)

Posted

技术标签:

【中文标题】如何避免使用 ggtern/ggplot2 剪切标签(如 xpd=TRUE)【英文标题】:How to avoid clipping of labels with ggtern/ggplot2 (like xpd=TRUE) 【发布时间】:2019-03-27 18:29:31 【问题描述】:

在下面的三元图中,轴外的标签被剪裁。我找不到避免这种情况的ggtern()ggplot2 设置。对于基本 R 图形,我只会使用 xpd=TRUE

我的数据:

modes <-
structure(list(Mode = c("Literature", "Poetry", "Table", "Map", 
"Thematic map", "Graph", "Art", "Diagram", "Statistical analysis", 
"Statistical graphics"), Words = c(9L, 7L, 1L, 2L, 2L, 1L, 4L, 
2L, 6L, 8L), Numbers = c(0.5, 1, 9, 2, 8, 1, 1, 0, 15, 8), Pictures = c(1L, 
4L, 1L, 9L, 14L, 11L, 8L, 9L, 5L, 15L)), .Names = c("Mode", "Words", 
"Numbers", "Pictures"), problems = structure(list(row = 10L, 
    col = NA_character_, expected = "4 columns", actual = "5 columns", 
    file = "'modes.dat'"), .Names = c("row", "col", "expected", 
"actual", "file"), row.names = c(NA, -1L), class = c("tbl_df", 
"tbl", "data.frame")), row.names = c(NA, -10L), spec = structure(list(
    cols = structure(list(Mode = structure(list(), class = c("collector_character", 
    "collector")), Words = structure(list(), class = c("collector_integer", 
    "collector")), Numbers = structure(list(), class = c("collector_double", 
    "collector")), Pictures = structure(list(), class = c("collector_integer", 
    "collector"))), .Names = c("Mode", "Words", "Numbers", "Pictures"
    )), default = structure(list(), class = c("collector_guess", 
    "collector"))), .Names = c("cols", "default"), class = "col_spec"), class = c("tbl_df", 
"tbl", "data.frame"))

代码:

library(ggtern)

AES <- (aes(x=Numbers, y=Words, z=Pictures, label=Mode ))

ggtern(data=modes, mapping=AES) +
  geom_point(size=3, color="red") +
  geom_label(vjust = "bottom")  + theme(text = element_text(size=16))

【问题讨论】:

【参考方案1】:

我通过滚动浏览 R Studio 中的 theme_ 建议找到了答案:theme_nomask() 可以满足我的需求。让这件事变得困难的是ggtern 有自己的三线性图约定,与ggplot2 的约定不同。

ggtern(data=modes, mapping=AES) +
  geom_point(size=3, color="red") +
  geom_label(vjust = "bottom")  + 
  theme_nomask() + 
  theme(text = element_text(size=16))

【讨论】:

以上是关于如何避免使用 ggtern/ggplot2 剪切标签(如 xpd=TRUE)的主要内容,如果未能解决你的问题,请参考以下文章

避免在 SVG 中剪切符号

替代不剪切中间字符的“溢出:隐藏”

如何在 OpenGL ES 2 或 3 上进行剪切平面?

如何避免使用 Python re 库删除文本文件中正则表达式标志之间的文本块?

在关键帧之间剪切视频而不使用ffmpeg重新编码完整视频?

如何使用CSS和SVG剪切和遮罩技术