[동음 :있는 여러 이미 게시 답이있다, 내가 어떻게 제목을 중앙에 요구 하진 않았어,주의하시기 바랍니다]ggplot2를 사용하여 윈도우의 플롯을 중앙에 배치하는 방법은 무엇입니까? (에 관계없이 축 제목, 전설 등의 길이)
내가 줄을 만드는 오전 차트, ggplot2를 사용하여 내가 알아낼 수 없었던 한 가지 방법은 세로 축 레이블 텍스트 (데이터 세트에 따라 다름)의 길이와 관계없이 윈도우에서 플롯 자체를 중앙에 배치하는 방법 또는 존재 여부 (또는 부재) 차트의 오른쪽에있는 범례. 가로 막 대형 차트가 포함 된 사각형을 항상 내 창 가운데에 배치하고 싶습니다. 이렇게하면 내보낼 때 모든 차트가 막대 차트의 양쪽에있는 텍스트 나 다른 개체를 기준으로 왼쪽이나 오른쪽으로 이동하지 않고 프레젠테이션의 슬라이드 가운데에 표시됩니다.
예를 들어 매우 짧은 세로 축 레이블이 있고 범례가없는 경우 플롯은 내가 원하는대로 가운데에 있습니다. 하지만 제가 오른쪽에 전설이 있다면, 그것은 왼쪽으로 내 차트를 푸시합니다. 긴 y 축 제목이 있으면 차트가 오른쪽으로 밀려납니다. 나는 다른 이유 때문에 다른 전설적인 포지셔닝을 사용하고 싶지 않기 때문에 대신 플롯 자체의 정당성을 제어 할 수있는 방법을 찾고자합니다.
미리 제안 해 주셔서 감사합니다. 플롯 패널이 중심되지 않습니다하지만
chtit <- "Example"
l_labs <- c("","","")
x_labs <- c("imagine that you had a really long label here",
"and that the long labels move your chart over",
"and mess up the alignment")
ests <- c(.5,.3,.2)
nerrs <- c(.05, .05, .05)
perrs <- nerrs
barchart.data <- data.frame(l_labs, x_labs, ests, nerrs, perrs)
p<- ggplot(barchart.data, aes(x=x_labs, y=ests, fill=l_labs)) +
geom_bar(stat="identity", color="#808080", position=position_dodge(), fill="#808080") +
geom_text(aes(y=ests+perrs+0.02, label=sprintf("%1.1f%%", 100*ests)), vjust=0.5, hjust=0, size=5, color="white") +
geom_errorbar(aes(ymin=ests-nerrs, ymax=ests+perrs), width=.2, position=position_dodge(.9), color="white", size=0.25) +
labs(title=chtit, x= "", y = "Frequency") + theme_classic() +
scale_y_continuous(limits = c(0,1.1), breaks=c(0, 0.2, 0.4, 0.6, 0.8, 1)) +
theme(legend.position="none", legend.text = element_text(color = "white")) +
theme(title = element_text(colour = "white")) +
theme(axis.text = element_text(size=12, color = "white"), axis.line = element_line(color = "white")) +
theme(axis.title = element_text(size=12, color = "white")) +
coord_flip() +
theme(panel.grid.major.x = element_line(colour = "white",size=0.25)) +
theme(aspect.ratio = 1) +
theme(panel.background = element_rect(fill = "#1e1e1e")) +
theme(plot.background = element_rect(fill = "#1e1e1e"), plot.margin = unit(c(.5,.5,.5,.5), "in")) +
guides(fill = guide_legend(reverse = TRUE))
print(p)
코드를 단순화 고려하고, 데이터를 포함하십시오 여기에 한 가지 방법입니다. http://reprex.tidyverse.org를 참조하십시오. –
저는 이것이 내 차트의 뉘앙스와 관련이없는 일반적인 질문이므로 제안을 얻을 수 있기를 바랍니다. 나는 여전히 학습하고있다. (또한 적시에 비즈니스에 필요한 결과를 제공하려고 노력하고있다.) 그래서 내 코드를 "잘 만든"대 내 코드 "작업"을 만드는 것으로 교환해야한다. :) – Bob
당신은 여기 기회가 없어. 'barchart.data'가 없다면 우리는 예제를 실행할 수 없으므로 가짜 데이터 등을 만들어야 할 때 도움이됩니다. 데이터를 생성하는 방법을 제공했다면 해답을 얻는 기회를 극대화 할 수 있습니다. 또한이 코드에는 문제와 관련없는 것으로 보이는 많은 것들이 있습니다. 너 자신을 트리밍하면 다른 사람들이 너를 도울 수있게 도와 줄 것이다. –