条形图中的图例未正确显示 [英] Legends in barplot not appearing properly

查看:34
本文介绍了条形图中的图例未正确显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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"))


查看您的其他一些问题,您可能还希望在绘制之前花一些时间将数据转换为更合适的格式。

举个例子:

  1. 这是您的数据:

    heights1 = c(5, 5, 4.5, 4, 4, 4, 4.5, 2, 4, 4) # Your data
    
  2. 这是您的数据,作为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
    
  3. 定义您的颜色(可选,但如果您使用的不仅仅是每组一对条,则很有用)

    colors <- c("darkblue", "red") # Define the colors you're using
    
  4. 绘制您的数据,在顶部添加一些额外的空间并抑制您的轴。不确定您为什么不想在此阶段包含图例,但可以通过添加以下参数轻松完成: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)")
    
  5. 重新引入y轴并添加图例

    axis(2, at = 0:5, labels = 0:5)
    legend("topright", colnames(mydata), fill = colors, bty = "n")
    

这篇关于条形图中的图例未正确显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆