[英]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.