2017-11-29 1 views
2

ggplot2 점 도면의 문자/문자에 하위/위 첨자를 추가하고 싶습니다. 내가 축에서이 작업을 수행하는 방법을 알고 있지만, 특수 문자이기 때문에이 경우에는, 나는 음모를 꾸미고 전에 문자 벡터를 정의ggplot2의 위 첨자 및 아래 첨자

IPA=(c("ph", "th", "kh", "p", "t", "k", "ts", "tsh", etc.)) 

내가 문자 조합을 플롯하려면 같은 쪽^[H]로 및 ts^[h]하지만 그래프의 점은이 구문이 작동하지 않습니다 (p^{h} 또는 p^h도 아님). 그래픽을 참조하십시오.

p <- ggplot(data, aes(x, y, label=IPA)) 
p + geom_text(size = 5) + 
    theme(legend.position="none") + 
    scale_shape_manual(values = IPA) 

enter image description here

답변

1

당신은 plotmath 식으로 텍스트를 변환 geom_textparse=TRUE를 사용할 수 있습니다. 아래는 내장 된 mtcars 데이터 프레임이있는 예입니다. 나는 mtcars에 열로 IPA 값을 추가하고 [h]h의 모든 인스턴스를 변환, 각각이다 t^sts의 경우, 모든, plotmath의 첨자와 위첨자 표현 (대한 ?plotmath를 참조했습니다 표현식에 대한 자세한 내용은 R 플롯에서 수학 주석과 관련된 많은 Stackoverflow 질문이 있습니다. parse=TRUE이면 geom_texth을 아래 첨자로 렌더링합니다.

mtcars$IPA = gsub("h", "[h]", IPA) 
mtcars$IPA = gsub("ts", "t^s", mtcars$IPA) 

ggplot(mtcars, aes(mpg, wt, label=IPA)) + 
    geom_text(size=5, parse=TRUE) + 
    theme_classic() 

enter image description here

+0

감사합니다! 비슷한 문제가있는 사람을위한 대안은 플로팅하기 전에 특수 문자를 벡터에 붙여 넣는 것입니다. 적절한 인코딩을 보장하기 위해서는 아마도 이것이 최선의 방법 일 것입니다. 고맙습니다! – MeC