현재 R
을 사용하여 다양한 종류의 boxplots
을 자동 생성합니다.R 박스 플롯의 자동 맞춤 레이블
우리가 가지고있는 문제는 라벨의 길이가 한 플롯에서 다른 플롯과 클래스 사이에서 상당히 다양하다는 것입니다.
음모를 자동으로 조정하여 모든 레이블이 잘 맞게 조정할 수 있습니까?
최악의 경우 mar
을 지정하는 것은 일부 플롯의 레이블이 다른 레이블보다 상당히 짧기 때문에 실현할 수 없습니다.
현재 R
을 사용하여 다양한 종류의 boxplots
을 자동 생성합니다.R 박스 플롯의 자동 맞춤 레이블
우리가 가지고있는 문제는 라벨의 길이가 한 플롯에서 다른 플롯과 클래스 사이에서 상당히 다양하다는 것입니다.
음모를 자동으로 조정하여 모든 레이블이 잘 맞게 조정할 수 있습니까?
최악의 경우 mar
을 지정하는 것은 일부 플롯의 레이블이 다른 레이블보다 상당히 짧기 때문에 실현할 수 없습니다.
격자는 여기에서 가장 유용한 그래픽 라이브러리입니다. 나는 두 가지 이유로 다음과 같이 말합니다. (i) 격자는 그리드 시스템을 기반으로하며, 그리드의 그래픽 프리미티브에 액세스하면 패널 출력의 위치를 훨씬 더 세밀하게 제어 할 수 있습니다. (ii) 더 많은 작업이 필요합니다. R 표준 그래픽 패키지에는 70 개의 매개 변수가 있고 Lattice는 371 개가 있습니다. 어쨌든 (길이 (names (unlist (trellis.par.get()))))) , 371은 기본 패키지에있는 것처럼 평평한 구조가 아니라 계층 구조 (최상위 레벨에 30 개 정도의 매개 변수 그룹이 있음)로 수집됩니다.
원하는 것은 축 레이블의 상대 위치입니다. 나는 이런 종류의 일에 한 수준 아래로가는 것이 좋습니다.
library(lattice)
library(grid)
bwplot(~runif(200, 10, 99), xlab="x-axis label", ylab="y-axis label")
# move the x-axis label to the far left
grid.edit("[.]xlab$", grep=T, x=unit(0, "npc"), just="left", redraw=T)
# move it to the far right
grid.edit("[.]xlab$", grep=T, x=unit(1, "npc"), just="right", redraw=T)
# move it to the center
grid.edit("[.]xlab$", grep=T, x=unit(0.5, "npc"), just="center", redraw=T)
# same for y-axis
grid.edit("[.]ylab$", grep=T, y=unit(0.5, "npc"), just="center", redraw=T)
이
는 "[.]가. xlab $으로", grid.edit는 gPath 객체를 취합니다 단지 두 grobs를 다시 그리기합니다 (R 대화 형 프롬프트를 사용하여) 그래서, 당신이하고 싶은 일을하는 그때 관련 GROB 슬롯을 변경 (단지 다른 grobs를 포함하는 그루브 인 gTree를 가로 지르는 경로); 왜냐하면 내가 어디에 gPath 내 관심 대상 (x 축/y 축 레이블, 내가 개체에 대한 정규 표현식 양식을 사용하여 알지 못했기 때문에
"grep = T", 그냥 그리드 알려줍니다. 이전 매개 변수를 정규 표현식으로 처리하도록 편집
"x = unit (0.5, 'npc')"여기서 뷰포트 좌표를 지정합니다 (이 경우 x 값). 'npc'('정규화 된 상위 좌표 ')는 뷰포트 원점을 (0,0)으로 처리하고 높이를 각각 & 높이 단위로 할당하므로 x 축을 따라 뷰포트의 중심을 지정했습니다.
기본 플롯팅 시스템을 사용하면 빠른 해결책은 x- 레이블을 las=2
또는 las=3
을 사용하여 세로로 표시합니다. 물론 이것은 레이블이 극도로 길지 않은 경우에만 작동하지만 특정 레이블 길이를 초과하면 어쨌든 모든 유형의 줄거리에 문제가 발생할 수 있습니다 (단축 레이블은 그 다음가는 방법 일 것입니다).
그러나 @doug에 동의하면 더 세밀한 제어, 격자 또는 ggplot2를 고려해야합니다.
boxplot에 어떤 기능을 사용합니까? 기본 패키지, 격자, ggplot에서? – Marek
왜 라벨을 걱정하지 않고 플롯의 크기를 표준화하지 않는 것이 좋을까요? 그렇게하면 모든 것이 멋지고 일관되게 맞을 것입니다. – Shane
재현 가능한 예가 좋을 것입니다. x 축 또는 y 축 문제가 있습니까? 나는 내장 솔루션을 모르지만? strwidth, strheight,? max는 당신을 도울 수있다. –