막대 그림에 대해 R의 x축 레이블 회전
저는 바 플롯에서 x축 라벨을 45도 회전시키려고 노력하고 있습니다.아래 코드는 다음과 같습니다.
barplot(((data1[,1] - average)/average) * 100,
srt = 45,
adj = 1,
xpd = TRUE,
names.arg = data1[,2],
col = c("#3CA0D0"),
main = "Best Lift Time to Vertical Drop Ratios of North American Resorts",
ylab = "Normalized Difference",
yaxt = 'n',
cex.names = 0.65,
cex.lab = 0.65)
옵션 매개 변수 las=2를 사용합니다.
barplot(mytable,main="Car makes",ylab="Freqency",xlab="make",las=2)
DAVID의 응답에 따라 편집된 답변:
여기에 일종의 해킹 방법이 있습니다.더 쉬운 방법이 있을 것 같습니다.그러나 다음 위치에서 막대 위치를 저장하여 막대 레이블과 레이블의 플롯 텍스트를 억제할 수 있습니다.barplot
위아래로 약간 조정을 해보세요.다음은 mtcars 데이터 세트의 예입니다.
x <- barplot(table(mtcars$cyl), xaxt="n")
labs <- paste(names(table(mtcars$cyl)), "cylinders")
text(cex=1, x=x-.25, y=-1.25, labs, xpd=TRUE, srt=45)
기본 그래픽을 사용하여 90도 이하의 각도로 x축 레이블을 회전합니다.R FAQ에서 채택된 코드:
par(mar = c(7, 4, 2, 2) + 0.2) #add room for the rotated labels
#use mtcars dataset to produce a barplot with qsec colum information
mtcars = mtcars[with(mtcars, order(-qsec)), ] #order mtcars data set by column "qsec"
end_point = 0.5 + nrow(mtcars) + nrow(mtcars) - 1 #this is the line which does the trick (together with barplot "space = 1" parameter)
barplot(mtcars$qsec, col = "grey50",
main = "",
ylab = "mtcars - qsec", ylim = c(0,5 + max(mtcars$qsec)),
xlab = "",
xaxt = "n", # Do not plot the default labels
space = 1)
#rotate 60 degrees (srt = 60)
text(seq(1.5, end_point, by = 2), par("usr")[3]-0.25,
srt = 60, adj = 1, xpd = TRUE,
labels = paste(rownames(mtcars)), cex = 0.65)
데이터 프레임을 다음 기능으로 간단하게 전달할 수 있습니다.
rotate_x <- function(data, column_to_plot, labels_vec, rot_angle) {
plt <- barplot(data[[column_to_plot]], col='steelblue', xaxt="n")
text(plt, par("usr")[3], labels = labels_vec, srt = rot_angle, adj = c(1.1,1.1), xpd = TRUE, cex=0.6)
}
용도:
rotate_x(mtcars, 'mpg', row.names(mtcars), 45)
필요에 따라 레이블의 회전 각도를 변경할 수 있습니다.
사용할 수 있습니다.
par(las=2) # make label text perpendicular to axis
여기에 쓰여 있습니다: http://www.statmethods.net/graphs/bar.html
ggplot2를 사용하여 추가 레이어를 추가하여 x축 레이블을 회전할 수 있습니다.
theme(axis.text.x = element_text(angle = 90, hjust = 1))
막대 그래프의 설명서에서 추가 파라미터에 대해 읽을 수 있습니다(...
) 함수 호출로 전달할 수 있습니다.
... arguments to be passed to/from other methods. For the default method these can
include further arguments (such as axes, asp and main) and graphical
parameters (see par) which are passed to plot.window(), title() and axis.
그래픽 매개변수의 문서화에서 (의 문서화)par
) 확인할 수 있는 항목:
las
numeric in {0,1,2,3}; the style of axis labels.
0:
always parallel to the axis [default],
1:
always horizontal,
2:
always perpendicular to the axis,
3:
always vertical.
Also supported by mtext. Note that string/character rotation via argument srt to par does not affect the axis labels.
그것이 통과하는 이유입니다.las=2
45°는 아니지만 레이블을 수직으로 만듭니다.
Andre Silva의 답변은 "막대 줄거리" 줄에 한 가지 주의 사항과 함께 저에게 매우 효과적입니다.
barplot(mtcars$qsec, col="grey50",
main="",
ylab="mtcars - qsec", ylim=c(0,5+max(mtcars$qsec)),
xlab = "",
xaxt = "n",
space=1)
xaxt 인수를 확인합니다.이 값이 없으면 레이블이 처음에는 60도 회전 없이 두 번 그려집니다.
언급URL : https://stackoverflow.com/questions/10286473/rotating-x-axis-labels-in-r-for-barplot
'bestsource' 카테고리의 다른 글
ASP.NET 멤버쉽에서 사용하는 기본 해시 알고리즘은 무엇입니까? (0) | 2023.06.18 |
---|---|
EQATEC 프로파일러를 사용하여 ASP.NET 웹 사이트 프로파일링 (0) | 2023.06.18 |
Firestore 하위 수집 대 어레이 (0) | 2023.06.18 |
파생 클래스 속성 값이 기본 클래스 생성자에 표시되지 않는 이유는 무엇입니까? (0) | 2023.06.18 |
여러 패턴이 있는 문자 벡터를 사용한 grep (0) | 2023.06.18 |