【问题标题】:Change font-size in legend更改图例中的字体大小
【发布时间】:2023-07-12 05:49:01
【问题描述】:

我的情节中有一个图例,但我正在尝试增加字体大小以使其适合图例框。当我尝试增加cex 时,定义如下。框变大了,而文字仍然很小。

代码:

legend(0,16, c("Available vCPUs", "Added vCPUs (1 per iteration ) "),
 col=c('red', 'black'), cex=0.39, lty=1:1, lwd=2)

情节摘录:

【问题讨论】:

    标签: r plot visualization


    【解决方案1】:

    可以使用cex确定字体大小,使用bty='n'表示图例周围没有线条,然后使用rect()在图形上单独绘制一个矩形。例如:

    with(data, legend(-10,7, legend=c("Name_of_Legend"), bty = 'n', col=c("red"), lty=0, pch=20, cex=0.75))
    with(data, rect(-10,6.2,-3,7))
    

    【讨论】:

      【解决方案2】:

      我认为您可以尝试使用 y.intersp在图例中,当不同文本行之间的间隔减小时,可以在不改变图例框大小的情况下增加文本大小。

      legend(0,16, c("Available vCPUs","Added vCPUs (1 per iteration )
      "),col=c('red','black'),cex=0.39,lty=1:1,lwd=2, y.intersp = 0.3)
      

      【讨论】:

        【解决方案3】:

        第一种方法:

        尝试在绘制图例之前设置字体大小。

         x <- y <- rnorm(100, 0, 1)
         plot(x, y, type = "n")
        
        ## here you set the font size default to `x`, in this example 0.5
        ## save defaults in `op`
        
         op <- par(cex = 0.5)
        
         legend("topright", legend = "foo legend", pch = 1, bty = "n")
        

        ## here you set cexto 1.5
        ## save new defaults in `op`
        
         op <- par(cex = 1.5)
        
         legend("topright", legend = "foo legend", pch = 1, bty = "n")
        

        第二种方法:

        pt.cex 参数保持为1,同时为cex inside 图例调用尝试不同的值。记得删除op

        x <- rnorm(100, 10, 4)
        y <- rnorm(100, 10, 4)
        plot(x, y, type = "n")
        
        ## I tried to feed cex with 1.5 and 0.5. The font size changes while the points remain unchanged.
        
        legend("topleft", "Legend", cex=0.5, pch=1, pt.cex = 1)
        

        【讨论】:

        • 我相信你误解了我的问题。我的目标是增加图例中文本的字体大小。由于字体大小相对于图例来说太小了。 @Worice
        • 抱歉,那就和op &lt;- par(cex = 1.5)一起玩吧。通过更改此参数,您可以调整大小。
        • 那很不幸。我用第二种方法编辑了答案。试一试告诉我。
        • 优秀...它也适用于 netmeta 包