增加三元图中的箭头粗细[ggtern]

Increase arrow thickness in ternary plot [ggtern]

这是一些示例代码。

library(ggtern)
# Based of random data.
DATA <- data.frame(A = runif(100), B = runif(100), C = runif(100))
plot <- ggtern(data = DATA, 
               mapping = aes(x = A, y = B, z = C)) + 
        geom_point() + ggtern::theme_bw(base_size = 30) + theme_arrowlarge()
plot

如何增加箭头和箭头的粗细?一旦我开始增加标签的大小,它们就太薄了。

此外,如何将参数 base_size 与 ggtern 主题一起使用?因为它似乎只适用于某些主题,所以如果我想放大所有内容(包括箭头),我不确定我是否正确使用它。

要更改箭头的线条粗细,您可以通过 theme() 函数访问 tern.axis.arrow。然后将 element_line() 的大小更改为您喜欢的大小。

library(ggtern)
# Based of random data.
DATA <- data.frame(A = runif(100), B = runif(100), C = runif(100))
ggtern(data = DATA, 
               mapping = aes(x = A, y = B, z = C)) + 
  geom_point() + 
  ggtern::theme_bw(base_size = 30) + 
  theme_arrowlarge() +
  theme(tern.axis.arrow = element_line(size = 3))

如果你想直接修改箭头选项,你可以从ggtern::theme_bw函数后面的代码看到,lineend从一个名为tern.arrow的全局选项调用。

function (base_size = 12, base_family = "") 
{
    base = ggplot2::theme_bw(base_size, base_family)
    theme_ggtern(base_size, base_family) %+replace% base %+replace% 
        theme(tern.plot.background = element_rect(size = NA, 
            color = NA), tern.axis.line = element_line(color = base$panel.border$colour), 
            tern.axis.arrow = element_line(color = base$panel.border$colour, 
                lineend = getOption("tern.arrow")))
}
<bytecode: 0x7fb23868a558>
<environment: namespace:ggtern>

因此,您可以根据需要使用箭头选项来调整箭头类型、大小等。例如,这里我们将箭头更改为 0.75 厘米,线条粗细更改为大小 3 .

DATA <- data.frame(A = runif(100), B = runif(100), C = runif(100))
options(tern.arrow = arrow(type = "open", length = unit(.75, "cm")))
ggtern(data = DATA, 
               mapping = aes(x = A, y = B, z = C)) + 
  geom_point() + 
  ggtern::theme_bw(base_size = 30) + 
  theme_arrowlarge() +
  theme(tern.axis.arrow = element_line(size = 3))

这会产生 a figure with thicker lines and bigger arrows。