저는 정말 처음 접하니 R에 익숙하지 않으므로 제발 쉬워!R : ggplot2 : 겹쳐지는 점과 색을 피하십시오
이것은 내 시나리오입니다. 24 개의 메타 분석 배포판 (Dist1-Dist24)이있는 데이터 프레임이 있습니다. 각 분포에 대해, 필자는 특이 치 제거 (ES1 이전 ES7 이전)와 특이 치 제거 (ES1 이후 ES1 이후)에 대한 7 가지 추정 전에 각각의 메타 분석 평균 효과 크기에 대한 7 가지 추정치를가집니다. 따라서 배포 당 총 14 개의 포인트가있을 수 있습니다.
내가 할 수있는 것 : 아래 데이터 프레임 및 스크립트를 사용하여 각 배포에 대한 모든 예상치를 플로팅 할 수 있습니다.
내 데이터 프레임은 "|"문자로 구분되며, (파이프). 일부 셀은 의도적으로 비어 있습니다. 여기
# setwd("your path")
# install packages
install.packages("ggplot2")
library(ggplot2)
install.packages("reshape2")
library(reshape2)
windowsFonts(TNR = windowsFont("Times New Roman"))
# load the data
d1 <- read.table(file.choose(), sep=",", header=TRUE)
# normalize the data (i.e., convert into 'long' form)
dat1 = melt(d1, id.vars = "x")
# Set x factor order in order that appears in data
dat1$x = factor(dat1$x, levels = unique(dat1$x))
# Begin plotting
Fig1 <- ggplot(dat1, aes(x=x, y= value))+
geom_point(aes(shape = variable)) +
geom_line(data=dat1[!is.na(dat1$value),]) +
scale_shape_manual(values = 0:13) +
geom_hline(yintercept = 0, linetype=2) +
coord_flip() +
xlab('Distribution') +
ylab('Effect size') +
ylim(-.30, .05)
Fig1 <- Fig1 +
theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line.x = element_line(colour = "black"),
axis.line.y = element_line(colour = "black"),
axis.text.x = element_text(size = 8),
axis.text.y = element_text(size = 8),
legend.position = ("bottom"),
legend.title=element_blank(),
legend.text=element_text(size=8),
legend.key = element_rect(colour = NA))
Fig1
내가 생산할 수있는 인물이다 : 여기
|x|ES1.before|ES2.before|ES3.before|ES4.before|ES5.before|ES6.before|ES7.before|ES1.after|ES2.after|ES3.after|ES4.after|ES5.after|ES6.after|ES7.after|
|Dist 1|-0.10|-0.1|-0.02|-0.04|-0.13|-0.03|0.00|-0.09|-0.09|-0.04|-0.06|-0.11|-0.03|-0.010|
|Dist 2|-0.11|-0.11|-0.06|-0.07|-0.14|-0.08|-0.06|-0.09|-0.09|-0.06|-0.07|-0.11|-0.08|-0.06|
|Dist 3|-0.12|-0.13|-0.03|-0.12|-0.15|-0.07|-0.02|-0.09|-0.09|-0.03|-0.04|-0.11|-0.04|0.00|
|Dist 4|-0.09|-0.09|-0.03|-0.04|-0.13|-0.05|-0.01|-0.11|-0.11|-0.06|-0.08|-0.13|-0.06|-0.05|
|Dist 5|-0.17|-0.17|-0.13|-0.13|-0.19|-0.11|-0.13|-0.16|-0.16|-0.13|-0.12|-0.18|-0.11|-0.13|
|Dist 6|-0.10|-0.10|-0.03|-0.04|-0.13|-0.04|-0.02|-0.08|-0.08|-0.04|-0.04|-0.10|-0.03|-0.02|
|Dist 7|-0.07|-0.07|-0.02|-0.02|-0.09|-0.06|-0.01|-0.08|-0.08|-0.03|-0.07|-0.09|-0.10|-0.01|
|Dist 8|-0.04|-0.05|0.00|-0.04|-0.09|-0.01|-0.01|-0.03|-0.03|-0.01|-0.01|-0.06|-0.01|0.00|
|Dist 9|-0.15|-0.15|-0.08|-0.11|-0.17|-0.08|-0.05|-0.12|-0.12|-0.08|-0.11|-0.14|-0.08|-0.07|
|Dist 10|-0.09|-0.09|-0.03|-0.05|-0.12|-0.03|0.00|-0.08|-0.09|-0.02|-0.05|-0.10|-0.03|0.00|
|Dist 11|-0.12|-0.09|-0.02|-0.02|-0.14|0|0.01|-0.12|-0.12|-0.07|-0.07|-0.13|-0.09|0.08|
|Dist 12|-0.07|-0.07|-0.02|-0.02|-0.11|-0.02|-0.01|
|Dist 13|-0.09|-0.09|-0.03|-0.05|-0.13|-0.03|-0.01|-0.07|-0.07|-0.03|-0.04|-0.09|-0.01|-0.01|
|Dist 14|-0.1|-0.09|-0.04|-0.06|-0.12|-0.05|-0.01|-0.12|-0.12|-0.05|-0.12|-0.14|-0.09|0.01|
|Dist 15|-0.05|-0.05|-0.04|-0.04|-0.04|-0.04|-0.03|
|Dist 16|-0.17|-0.17|-0.07|-0.11|-0.20|-0.09|-0.03|-0.16|-0.16|-0.07|-0.11|-0.18|-0.09|-0.07|
|Dist 17|-0.18|-0.18|-0.06|-0.18|-0.23|-0.09|-0.11|
|Dist 18|-0.23|-0.23|-0.05|-0.21|-0.26|-0.15|0.01|-0.11|-0.10|-0.04|-0.11|-0.12|-0.09|0.02|
|Dist 19|-0.07|-0.07|-0.02|-0.02|-0.12|-0.05|-0.01|-0.06|-0.06|-0.03|-0.03|-0.07|-0.02|0.00|
|Dist 20|-0.10|-0.10|-0.04|-0.07|-0.13|-0.06|-0.02|-0.10|-0.10|-0.04|-0.08|-0.12|-0.06|-0.02|
|Dist 21|-0.10|-0.10|-0.03|-0.05|-0.13|-0.04|-0.01|-0.09|-0.09|-0.05|-0.07|-0.11|-0.06|-0.05|
|Dist 22|-0.15|-0.15|-0.15|-0.15|-0.19|-0.04|-0.11|
|Dist 23|-0.11|-0.11|-0.05|-0.06|-0.14|-0.03|0.03|
|Dist 24|-0.10|-0.10|-0.04|-0.06|-0.16|-0.03|-0.05|-0.10|-0.10|-0.06|-0.07|-0.13|-0.04|-0.05|
내 코드입니다
참고 (1) dataframe, (2) 구문, (3) 플롯은 a에서 찾을 수 있습니다 Dropbox folder here
두 가지 질문이 있습니다. s :
(1) ES1.before와 ES1.after (등등)는 같은 모양을 공유하지만 색상이 다를 수 있습니까? 예를 들어, 파란색 모양과 ES1.before로 ES1.before을 가질 수있는 방법이 있습니까? 빨간색 모양으로, ES2.before와 ES2.after는 각각 다른 파란색과 빨간색 모양으로 나타 납니까?
(2) 현재 효과 크기 값이 동일하면 모양이 겹칩니다. 효과 크기 값이 같을 때 모양을 서로 쌓을 수있는 방법이 있습니까? 나는 '닷지'와 '지터'기능을 광범위하게 사용했지만 해결책을 찾지 못했습니다.
나를 도울 용의가있는 사람에게 감사드립니다. 불분명 한 점이 있으면 사과드립니다. 나는 명확하지 않은 것을 명확하게 밝혀 내게되어 기쁠 것이다.
환영 SO,'dput은 (your_df)는'당신보다 도움이되는 시간을내어 매우 재현성에 대한 모든의 – Nate