나는 몇 가지 문제가 있어요 ggplot2
'들 geom_bar
:
내 데이터는 다음과 같습니다.
set.seed(1)
df <- data.frame(log10.p.value = -10*log10(runif(10,0,1)), y = letters[1:10], col = rep("#E0E0FF",10), stringsAsFactors = F)
#specify color by log10.p.value
df$col[which(df$log10.p.value > 2)] <- "#EBCCD6"
df$col[which(df$log10.p.value > 4)] <- "#E09898"
df$col[which(df$log10.p.value > 6)] <- "#C74747"
df$col[which(df$log10.p.value > 8)] <- "#B20000"
#truncate bars
df$log10.p.value[which(df$log10.p.value > 10)] <- 10
보시다시피 각 log10.p.value
간격에는 다른 색상이 할당되어 있으며 막대가 확장되지 않도록하려면 log10.p.value = 10
이러한 값을 10으로 설정합니다.
내 ggplot
명령은 다음과 같습니다.
p <- ggplot(df, aes(y=log10.p.value,x=y,fill=as.factor(col)))+
geom_bar(stat="identity",width=0.2)+coord_flip()+scale_y_continuous(limits=c(0,10),labels=c(seq(0,7.5,2.5)," >10"))+
theme(axis.text=element_text(size=10))+scale_fill_manual(values=df$col,guide=FALSE)
그리고 그림은 다음과 같습니다.
문제는 다음과 같습니다.
플롯의 막대 색상이 일치하지 않습니다 df$col
. 예를 들어 막대 a와 b는 # E09898이 아닌 # EBCCD6으로 표시됩니다.
x 축 마지막 눈금 텍스트를 "> 10"으로 수동으로 지정하기 때문에 해당 눈금의 오른쪽에 추가 공간이 생성되어 10에서 잘린 막대가 10에서 끝나는 것처럼 보이게하는 반면 제 의도는 줄거리의 오른쪽 끝까지 이동합니다.
생성 한 그래프를 재현 할 수 없습니다. 제공 한 코드를 실행하면 다음 그래프가 생성됩니다.
전달하는 벡터의 이름을 지정하여 색상을 올바르게 지정할 수 있습니다 scale_fill_manual
.
coloursv <- df$col
names(coloursv) <- df$col
질문의 두 번째 부분으로, expand
매개 변수를 사용하여 막대와 그래프 가장자리 사이에 공간이 없는지 확인할 수 있습니다 scale_y_continuous
.
이 두 가지를 변경하면 플롯의 코드는 다음과 같습니다.
p <- ggplot(df, aes(y=log10.p.value,x=y,fill=as.factor(col)))+
geom_bar(stat="identity",width=0.2) +
scale_y_continuous(limits=c(0,10),
labels=c(seq(0,7.5,2.5)," >10"),
expand = c(0,0)) +
theme(axis.text=element_text(size=10)) +
scale_fill_manual(values = coloursv,guide = F) +
coord_flip()
'> 10'레이블은 약간 잘립니다. 다음을 사용하여 플롯 여백을 늘릴 수 있습니다.
p + theme(plot.margin=unit(c(0.1,0.5,0.1,0.1),"cm"))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다