簡體   English   中英

如何更改ggplots列表中的軸標簽?

[英]How do you change the axis labels in a list of ggplots?

我正在創建一個ggplots列表以制作動畫。 我想在x軸上突出顯示一個標簽,並且此突出顯示的位置會在不同的動畫幀上發生變化。

這是一個樣本圖。 第一個軸標簽應在第一幀中突出顯示,第二個在第二幀中突出顯示。

p <- ggplot(mtcars, aes(factor(cyl), mpg)) + 
  geom_boxplot() 
p_list <- list()

for(i in 1:2)  
{
  x_label_cols <- rep("grey50", 3)
  x_label_cols[i] <- "red"
  p_list[[i]] <- p + 
    opts(
      axis.text.x = theme_text(
        colour = x_label_cols
      )
    )
}

不幸的是,似乎在打印圖時評估x_label_cols ,而不是在創建圖時,因此兩個框都突出顯示第二個標簽。 因此print(p_list[[1]])顯示不正確。

如何為列表中的每個繪圖獲取不同的軸標簽顏色?

為什么不在saveGIF()調整opts? 據我所知, opts()就像options()一樣工作,但后來專門用於ggplot2。 因此,在您的代碼中,您可以將選項設置兩次,但只在最后一次更改選項后打印圖形。 因此,您必須在saveGIF()運行的代碼中包含選項更改。

這段代碼適合我:

p <- ggplot(mtcars, aes(factor(cyl), mpg)) +
  geom_boxplot()

saveGIF(
  sapply(1:2,function(x){
      x_label_cols <- rep("grey50", 3)
      x_label_cols[x] <- "red"
      print(p + 
        opts(axis.text.x = theme_text(colour = x_label_cols))
      )
  })
)

給:

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM