条形图中的图例未正确显示 [英] Legends in barplot not appearing properly
本文介绍了条形图中的图例未正确显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
heights1=c(5,5,4.5,4,4,4,4.5,2,4,4)
opar <- par(lwd = 0.3)
barplot(heights1,xlim=c(0,3), ylim=c(0,5), width=0.1,
main="Langauges(Verbal & Non-verbal)",
names.arg=c("Spanish", "Speak" , "English","Speak", "Hindi",
"Speak", "Arabic", "Speak", "Body Lang", "Speak"), ylab="Skill level ",
xlab="Language starting with mostly used", col=c("darkblue","red"),
cex.names=0.7,space=c(2,0,2,0,2,0,2,0,2,0))
legend("top", c("darkblue","red"), c("reading/Writing", "Speaking") );
蓝色代表"读/写",红色代表"说话"。我怎样才能改正图例呢?(我不想在条形图函数中定义图例)
推荐答案
您可以将fill
参数用于您的颜色。与David Robinson的回答一样,我也建议在这种情况下将图例放在右上角。
legend("topright",
legend = c("reading/Writing", "Speaking"),
fill = c("darkblue", "red"))
查看您的其他一些问题,您可能还希望在绘制之前花一些时间将数据转换为更合适的格式。
举个例子:
这是您的数据:
heights1 = c(5, 5, 4.5, 4, 4, 4, 4.5, 2, 4, 4) # Your data
这是您的数据,作为
matrix
和相应的dimnames
mydata <- matrix(heights1, ncol = 2, byrow = TRUE, dimnames = list(c("Spanish", "English", "Hindi", "Arabic", "Body Lang"), c("Reading/Writing", "Speaking"))) mydata # Much more meaningful to look at than a simple vector # Reading/Writing Speaking # Spanish 5.0 5 # English 4.5 4 # Hindi 4.0 4 # Arabic 4.5 2 # Body Lang 4.0 4
定义您的颜色(可选,但如果您使用的不仅仅是每组一对条,则很有用)
colors <- c("darkblue", "red") # Define the colors you're using
绘制您的数据,在顶部添加一些额外的空间并抑制您的轴。不确定您为什么不想在此阶段包含图例,但可以通过添加以下参数轻松完成:
legend.text = TRUE, args.legend = list(x = "topright", bty = "n")
barplot(t(mydata), beside = TRUE, col = colors, ylim = c(0, 6), axes = FALSE, xlab = "Language starting with mostly used", main = "Languages (Verbal & Non-verbal)")
重新引入y轴并添加图例
axis(2, at = 0:5, labels = 0:5) legend("topright", colnames(mydata), fill = colors, bty = "n")
这篇关于条形图中的图例未正确显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文