【问题标题】:Indicate legend in R barplot properly正确指示 R barplot 中的图例
【发布时间】:2019-08-22 13:53:28
【问题描述】:

我看到一些帖子,人们问如何正确地指出他们的情节传说。然而,所有这些人都有足够的空间来改变传奇。就我而言,我没有那么多空间,因为我使用 abline 绘制的两条线需要整个空间。有人可以告诉我如何放置我的图例,例如在两条线上(也非常感谢其他想法)。

h1 <- 174
h2 <- 122

data.mlm = matrix(
   c(125,125,116,99,83,68,58,45,33,32,18,12,7,60,82,74,60,49,41,34,29,19,22,8,7,4),
   nrow=2,              # number of rows 
   ncol=13,              # number of columns 
   byrow = TRUE) 


colnames(data.mlm) <- c("1","2","3", "4","5","6", "7","8","9", "10","11","12", "13")
rownames(data.mlm) <- c("100% Sample","MLM Sample")


barplot(data.mlm, 
        col=colors()[c(180, 1)] , 
        border="black", 
        font.axis=1, 
        beside=T, 
        ylim=(c(0, 200)),
        legend=rownames(data.mlm), 
        xlab="Measurement point",
        ylab="Number of observations per measurement point",
        font.lab=1,)



abline(122, 0, lty=2)
abline(174, 0, lty=2)

【问题讨论】:

    标签: r bar-chart yaxis


    【解决方案1】:

    这是一个手动更改,以阻止一条线穿过图例。只修改了最后一行代码

    h1 <- 174
    h2 <- 122
    
    data.mlm = matrix(
      c(125,125,116,99,83,68,58,45,33,32,18,12,7,60,82,74,60,49,41,34,29,19,22,8,7,4),
      nrow=2,              # number of rows 
      ncol=13,              # number of columns 
      byrow = TRUE) 
    
    
    colnames(data.mlm) <- c("1","2","3", "4","5","6", "7","8","9", "10","11","12", "13")
    rownames(data.mlm) <- c("100% Sample","MLM Sample")
    
    
    barplot(data.mlm, 
            col=colors()[c(180, 1)] , 
            border="black", 
            font.axis=1, 
            beside=T, 
            ylim=(c(0, 200)),
            legend=rownames(data.mlm), 
            args.legend = c(bg='white'),
            xlab="Measurement point",
            ylab="Number of observations per measurement point",
            font.lab=1,)
    
    
    
    abline(122, 0, lty=2)
    lines(c(0,25),c(174,174), lty=2)
    

    【讨论】:

    • 我实际上添加了行 'args.legend = c(bg='white')' 以及我第一次尝试的解决方案。它可以被删除,因为图例的透明度不是问题。在创建图例后调用这些行。
    【解决方案2】:

    这个怎么样:

     barplot(data.mlm, 
            col=colors()[c(180, 1)] , 
            border="black", 
            font.axis=1, 
            beside=T, 
            ylim=(c(0, 200)),
            #legend=rownames(data.mlm), 
            xlab="Measurement point",
            ylab="Number of observations per measurement point",
            font.lab=1,)
    
    legend("right", legend=c("100% Sample", "MLM Sample"),
           col=colors()[c(180, 1)], fill=colors()[c(180, 1)], cex=0.8)
    
    
    abline(122, 0, lty=2)
    abline(174, 0, lty=2)
    

    图例右侧的位置:

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 1970-01-01
      • 2016-07-23
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      相关资源
      最近更新 更多