我在使用label_bquote為一個面條分配不同的標簽時遇到了一些麻煩。
mpg$class2 < -重新排序(mpg$class。 mpg$displ)
ggplot(mpg, aes(displ, hwy))
geom_point()
facet_wrap( ~ class2, ncol = 1。 尺度="free_y",
strip.position = "left",
labeller = label_bquote(rows = list("2S"[/span>e]~(sigma ~m^-3)。 西格瑪[U]/span>。 三, for。 五,六,psi))) )
最后的結果是,我在所有7行中都有7個標簽。我試著用串列,但它沒有幫助。
謝謝你,
A
uj5u.com熱心網友回復:
這種方法創建了一個標簽變數,用于對資料進行分面,并為條狀標簽提供plotmath運算式。
library(ggplot2)
# data frame mapping the unique `class` values to the required mathplot expression。
df_labs <- data. frame(class = c(" compact"。 "subcompact", "midsize" 。 "minivan", "pickup", "suv", "2seater"), , "2seater" >
class2 = c("2*S[e]~(sigma ~m^{-3})"。 "sigma[U]", "三"。 "four", "five"。 "six", "psi"))
mpg <- merge(mpg,df_labs)
mpg$class2 < -重新排序(mpg$class2, mpg$displ)
ggplot(mpg, aes(displ, hwy))
geom_point()
facet_wrap(~class2,)
ncol = 1,
scales="free_y",
strip.position = "left",
labeller = label_parsed)

創建于2021-09-17,由reprex包(v2.0.0)
uj5u.com熱心網友回復:
label_bquote函式只有在你想使用faceting變數的當前值建立一個運算式時才真正有用。由于你想建立一個完全不同的運算式,不使用 "pickup"、"suv "等的值,這將不會有很大幫助。
首先,我建議你從分面變數到你想要使用的標簽之間做一個明確的映射。比如說
strip_labels <- 運算式()
緊湊= "2S"[e]~(sigma ~m^-3) 。
超小型=sigma[U],
中型車=三,
小型貨車=四,
皮卡=五,
suv = six,
"2seater"/span> = psi
)
然后我們可以使用一個輔助函式來從這個運算式串列中提取值。下面是這個函式
label_expressions < - function(values) {
stopifnot(is.expression(values))
as_labeller(function(x) {)
if (is. null(names(values))) {
x <- seq_along(x)
if (length(x)! =length(values))警告(paste0("Number of labels("。
長度(values)。 ")不符合值的數量("。 長度(x)。 ")"))
}。
as.list(values[x])
}, default=identity)
}。
然后我們可以使用該助手和labeller函式來重新標記分面變數
ggplot(mpg, aes(displ,hwy))
geom_point()
facet_wrap( ~class2, ncol = 1。 尺度="free_y",
strip.position = "left",
labeller = labeller(class2 = label_expressions(strip_labels)))
這種方法保留了運算式的值,而不是強迫你去強制使用字符值,然后重新決議這些值。它完全不會改變你的實際資料。
有了這個助手,如果你愿意,你也可以直接傳遞一個未命名的運算式
。ggplot(mpg, aes(displ,hwy))
geom_point()
facet_wrap( ~ class2, ncol = 1。 尺度="free_y",
strip.position = "left",
labeller = labeller(class2 = label_expressions(運算式("2S"/span>[e]~(sigma ~m^-3) 。 西格瑪[U],三,四。 五, 六。 psi))))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330226.html
標籤:

