【发布时间】:2019-11-02 15:49:49
【问题描述】:
到目前为止,我看到的所有解决方案都涉及手动设置图例的坐标,使其位于绘图之外。我有超过 100 个图,因此希望能够在每个图上重用相同的代码,以将图例默认放置在图之外。
这里有两个数据框,一个包含成功的求职者,一个包含所有申请该职位的人:
Id <- c(1,5,7,9,11,12,13,15,17,18)
Type <- c("Beginner", "Expert", "Intermediate", "Beginner",
"Professional", "Expert", "Intermediate", "Professional", "Professional",
"Expert")
Response<- c(0,1,2,2,1,2,1,2,1,1)
Successful <- data.frame(Id, Type, Response)
Successful
# Successful
Id Type Response
1 Beginner 0
5 Expert 1
7 Intermediate 2
9 Beginner 2
11 Professional 1
12 Expert 2
13 Intermediate 1
15 Professional 2
17 Professional 1
18 Expert 1
Id <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)
Type <- c("Beginner", "Expert", "Professional", "Beginner", "Expert",
"Expert", "Intermediate", "Expert", "Beginner", "Intermediate",
"Professional", "Expert", "Intermediate","Intermediate", "Professional",
"Beginner", "Professional","Expert")
Response<- c(0,2,2,1,1,0,2,0,2,0,1,2,1,1,2,2,1,1)
AllApplicants <- data.frame(Id, Type, Response)
AllApplicants
# AllApplicants
Id Type Response
1 Beginner 0
2 Expert 2
3 Professional 2
4 Beginner 1
5 Expert 1
6 Expert 0
7 Intermediate 2
8 Expert 0
9 Beginner 2
10 Intermediate 0
11 Professional 1
12 Expert 2
13 Intermediate 1
14 Intermediate 1
15 Professional 2
16 Beginner 2
17 Professional 1
18 Expert 1
如果我们绘制这些数据的图:
colors <- c("red", "orange", "green")
barplot(round(100*prop.table(table(AllApplicants$Response,
AllApplicants$Type),2), 1),
main="Responses of applicants", xlab="Level", ylab= "Proportion",
col=colors, legend.text = T)
图例与情节重叠。 我知道可以手动设置图表的边距和图例的位置:
par(mar=c(5.1,4.1,4.1,8))
legend(5,90, legend=c(0,1,2), fill=colors, xpd=T)
但是,如果我在 barplot() 函数中包含 legend.text=TRUE,我希望保留自动生成的图例,并使其自动将图例放置在图的外部和右侧。当我调整绘图大小和缩放时,我还需要它留在那里。
任何帮助将不胜感激!
【问题讨论】: