代码之家  ›  专栏  ›  技术社区  ›  RLave

更改镶嵌面网格内单个绘图的线条大小

  •  1
  • RLave  · 技术社区  · 6 年前

    我想改变一条线的大小,在一个 facet_grid ,其他的保持不变。这是为了“突出”更多的一行。

    假数据:

    set.seed(123)
    my_data <- data.frame(
      time = 1:100,
      a = runif(100, min = 0, max = 10),
      b = runif(100, min = 0, max = 20),
      c = runif(100, min = 0, max = 30)
    )
    
    
    library(ggplot2)
    library(dplyr)
    my_data %>% 
      gather("key", "value", -time) %>%
      ggplot(aes(x = time, y = value, color = key)) +
      geom_line() +
      facet_grid(key~., scales = "free") +
      theme_minimal() +
      guides(color = FALSE, size = FALSE)
    

    enter image description here

    在这个例子中,我希望 b 绘制一条更大的线 size .

    1 回复  |  直到 6 年前
        1
  •  2
  •   RLave    6 年前

    这可以通过创建具有重复大小的新向量来实现:

    linesize = rep(c(0, 1, 0), each=100) # externally define the sizes
    # note that a,c will have size=0 while b size=1
    

    这将用于 geom_line 呼叫:

    my_data %>% 
      gather("key", "value", -time) %>%
      ggplot(aes(x = time, y = value, color = key)) +
      geom_line(size = linesize) + # here we can pass linesize
      facet_grid(key~., scales = "free") +
      theme_minimal() +
      guides(color = FALSE)
    

    enter image description here