簡體   English   中英

修改 ggplot 中的 facet (strip) *variable* 標簽

[英]Modify facet (strip) *variable* labels in ggplot

假設我有以下數據集:

set.seed(1212)
a = sample(c("A", "B"), size=100, replace=T)
x = rnorm(100)
y = model.matrix(~a + x) %*% c(0, .5, .5) + rnorm(100, 0)
d = data.frame(a=a, x=x, y=y)

我可以輕松生成一個 ggplot 面板變量a

p = ggplot(d, aes(x=x, y=y)) + 
  geom_point() + 
  geom_smooth(method="lm") +
  facet_grid(~a, labeller=label_both)
p

沒有自定義標簽的ggplot

我還可以輕松修改 X/Y 的標簽:

p + labs(x="My X Label", y="My Y Label")

在 x/y 上帶有自定義標簽的 ggplot

但我不知道如何輕松更改條帶的標簽。 這些都不起作用:

p + labs(x="My X Label", y="My Y Label", strip = "A")
p + labs(x="My X Label", y="My Y Label", grid = "A")
p + labs(x="My X Label", y="My Y Label", panel = "A")
p + labs(x="My X Label", y="My Y Label", wtf = "A")

我知道我可以改變我的變量名:

ggplot(d %>% rename(`A Fancy Label` = a),
       aes(x=x,y=y)) +
  geom_point() +
  geom_smooth() + 
  facet_grid(~`A Fancy Label`, labeller=label_both)

或者我可以使用某種自定義貼標機。 但是,我在我的 R 包中生成 ggplot 圖形,並且標簽器內置在 R 包中,不能輕易修改。

所以,現在我的問題是:如何以不需要我修改實際變量或使用某些自定義標簽器函數的方式更改方面的變量標簽?

經過多次谷歌搜索,我只能找到如何更改方面的值標簽,而不是方面的變量標簽(例如, 這個問題/答案)。

提前致謝!

這可能不是完美的。 但是,通過向 facet_grid 函數添加“Fancy Label”,您可以在 facet 標簽上使用相同的標簽。

p = ggplot(d, aes(x=x, y=y)) + 
  geom_point() + 
  geom_smooth(method="lm") +
  facet_grid(~ "Fancy Label" + a)  
  
p  + labs(x="My X Label", y="My Y Label")

在此處輸入圖片說明

暫無
暫無

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

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