일부 ggplot 패싯 레이블이 아닌 일부에 표현식을 포함하려고합니다. 이 question은 이전에 요청 및 해결되었지만 특정 사례에 맞게 작동하지는 않습니다.labeller = label_parsed를 사용하여 일부 ggplot 패싯 레이블에 표현식을 포함시키는 방법?
Error in parse(text = as.character(values)) : :1:8: unexpected symbol 1: Capped brood ^
는 내 실수가 무엇인지 알려주세요 그리고 내가면 라벨의 제곱근 기호를 그릴 수있는 방법 :
나는 다음과 같은 오류가 발생합니다.
데이터 :
df <- structure(list(t0 = c(122.883911266139, 169.48220216013, 121.371211764444,
170.60152096912, 122.001873322486, 151.578850452806, 120.458523959951,
149.550874882101, 3411.77083333332, 8846.04166666666, 3329.0625,
8866.04166666666, 5931.79935833674, 4554.92435833674, 5618.75,
5387.63269167007), Treatment = structure(c(1L, 1L, 2L, 2L, 1L,
1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("A",
"B"), class = "factor"), Trait = structure(c(2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Capped brood cells",
"Colony strength", "sqrt(\"Colony weight (g)\")"), class = "factor"),
Timepoint = structure(c(1L, 2L, 1L, 2L, 3L, 4L, 3L, 4L, 1L,
2L, 1L, 2L, 3L, 4L, 3L, 4L), .Label = c("2013 Before", "2013 After",
"2014 Before", "2014 After"), class = "factor")), .Names = c("t0",
"Treatment", "Trait", "Timepoint"), row.names = c(NA, 16L), class = "data.frame")
코드 :
지금까지 내가 볼 수있는 코드 두 가지 문제가있다df$Trait = as.factor(df$Trait)
levels(df$Trait) <- c("Capped brood cells", "Colony strength", expression(sqrt("Colony weight (g)")))
dodge <- position_dodge(width=0.9)
ggplot(df, aes(x = Timepoint, y = t0, fill = Treatment))+
geom_bar(position = dodge, stat="identity", color = "black")+
facet_grid(Trait~., scales = "free_y", labeller = label_parsed)
첫 번째 수준의 값이 아닌 문제의 원인이 발현 될 것으로 보인다 : 다음에 당신의 '코드'블록의 첫 두 줄을 변경
는정확한 그래프를 생성합니다. 나는'label_parsed'가 라벨에서 공백을 허용하지 않는다고 생각합니다. 이 값을 변경하면 올바른 표현이 인쇄됩니다. – timfaber