繁体   English   中英

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

[英]barplot() in R: markers, size, labels

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

图片:

图片

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

    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 仪表板的一部分,但我认为这与进行更改无关。

修复

1) 尺寸

您有一个固定区域来可视化绘图,因此很难看出如何将其放大。

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

2) Y 轴标记

这是因为 2 个原因: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)

结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM