x가 log2 스케일 일 때 2^x 형식의 x 축 레이블을 어떻게 수정합니까?2^x 형식으로 x 축 눈금 레이블을 포맷하는 방법은 무엇입니까?
그래프에 표시 될 때 x는 위 첨자로 표시해야합니다.
x가 log2 스케일 일 때 2^x 형식의 x 축 레이블을 어떻게 수정합니까?2^x 형식으로 x 축 눈금 레이블을 포맷하는 방법은 무엇입니까?
그래프에 표시 될 때 x는 위 첨자로 표시해야합니다.
여기에는 사용자 지정 변환 및 레이블 지정 기능을 수행하는 방법이 있습니다. 그것은 임의의 데이터에서 작동해야합니다. 여기
library(scales)
ggplot(mtcars, aes(mpg, cyl)) +
geom_point() +
scale_x_continuous(
trans = 'log2',
labels = trans_format('log2', math_format(2^.x)))
, trans_format
는 라벨 후 지정된 변환을 포맷합니다 :
library(ggplot2)
label_log2 <- function(x) parse(text = paste0('2^', log(x, 2)))
ggplot(mtcars, aes(mpg, cyl)) +
geom_point() +
scale_x_continuous(
trans = 'log2',
labels = label_log2)
alistaire의 의견에 따르면, 우리는 또한 scales
패키지가 제공하는 기능을 가진 축 레이블을 포맷 할 수 있습니다 . 설명서에 따르면
:
트랜스
변환 객체 이름 또는 객체 자체 어느. 내장 변환에는 "asn", "atanh", "boxcox", "exp", "identity", "log", "log10", "log1p", "log2", "logit", "확률" , "probit", "reciprocal", "reverse"및 "sqrt"가 있습니다.변형 개체는 변환, 역방향 및 나누기 및 레이블 생성을위한 메서드를 함께 묶습니다. 변환 객체는 축척 패키지에 정의 된 이며 name_trans라고합니다. boxcox_trans. trans_new를 사용하여 고유 한 변환을 만들 수 있습니다.
trans
는 또는 내장 된 변환의 이름 (scales::log2_trans
에 대한 호출의 반환 값과 같은) 변환 객체이어야한다, 그래서 우리는 또한 trans = scales::log2_trans()
대신 trans = 'log2'
사용할 수 있습니다.
Upvoted,하지만 하나의 인수가있는 것 같지 않습니다. 함수 호출로 전달되고 함수 이름으로 전달 된 다른 함수는 일관성이 없습니다. –
@ 42- 물론, 이상하게 보입니다. '레이블'은 인수로 함수를 취할 수있는 반면,'trans'은 변환 객체에 내장 된 이름의 이름을 요구합니다. 함수 이름을 파싱하는 것은'trans'에 대해 작동하지 않습니다. 이를 반영하기 위해 답을 편집했습니다. 그리고'trans = 'log2' '를 사용하는 것이 더 낫다는 것을 알았습니다. – mt1022
'scales'도 포맷터 함수를 제공합니다. 이 경우 미리 작성된 것은 아니지만 사용할 수있는 함수로 구성하는 것이 어렵지 않습니다.'labels = scales :: trans_format ('log2', scales :: math_format (2^.x)) ' – alistaire
x가 이미 로그 눈금에있는 경우 레이블을 수정하면됩니다. df <- data.frame (x = 1 : 4, y = 1 : 4); scale_x_continuous (labels = paste0 ("2 ^", 1 : 4)) –