R中的barplot():标记,大小,标签

问题描述 投票:0回答:1

我正在尝试使用barplot()在R中绘制图。但是我遇到了一些问题。首先,我要附上绘图的图像以及用于绘图的代码。然后我在描述问题。

图像:

image

这是我用来生成该图的代码段。

    par(mar=c(14, 7, 2, 2), mgp=c(5,2,0))

        midpts<-barplot(x[,input$year], 
                        main=input$year,
                        ylab="Number of Units",
                        xlab="Product",col='maroon')
        vps <- baseViewports()
        pushViewport(vps$inner, vps$figure, vps$plot)

        grid.text(rownames(x),
                  x = unit(midpts, "native"), y=unit(-1, "lines"),
                  just="right", rot=90)
        popViewport(3)

问题:

1)整个图块总体上看起来也很小,我希望它更大。

2)Y轴上的某些标记不可见。缺少的标记取决于“年份”下拉列表。几年后,所有的Y轴标记都会出现,而另一些标记将像这样丢失一些。

3)有人还能告诉我如何使我的X标签(“产品”)和Y标签(“单位数”)加粗且与众不同,以便与标记区分开吗?

注意:此图是R-Shiny仪表板的一部分,但我认为这与进行更改无关。

r plot bar-chart
1个回答
0
投票

修复

1)大小

您有一个固定的区域可以直观显示该图,因此很难看到如何放大它。

解决此问题的一种方法是减小文本标签和页边距的大小,因此条形图会有更大的区域。

[2)Y轴标记

这是由于两个原因:1-您将它们显示为与y轴平行对齐,因此它们占用了大量空间,而2-字体很大,因此它们重叠了。在这种情况下,最好不要显示某些标签,而不要重叠标签。

要解决此问题,您可以考虑将标签旋转90度。

3)加粗标签

您可以通过调用控制这些选项的单独函数title()来向图中添加标签。

[4)额外

我建议删除您正在执行的“ viewPort”操作,因为这特定于网格图形。

结果

总体而言,这是一个包含代码的版本,应该可以解决您的大多数问题。您没有提供使用的数据集,所以我改用“ USArrests”。

par(mar=c(7, 7, 2, 2), mgp=c(5,2,0))

mids <- barplot(USArrests$Assault, col='maroon', las=2, cex.names=0.7, cex.axis=0.7)
mtext(rownames(USArrests), 1, at=mids, las=2, cex=0.7)

title("Assault")
title(xlab="states", font.lab=2)
title(ylab="Number of Units", font.lab=2)

result

© www.soinside.com 2019 - 2024. All rights reserved.