【问题标题】:barplot() in R: markers, size, labelsR中的barplot():标记,大小,标签
【发布时间】:2020-07-10 16:45:44
【问题描述】:

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

图片:

这是我用来生成此图的代码 sn-p。

    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】:

    修复

    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)
    

    【讨论】:

    • 我将那个视口用于 grid.text 函数,它可以帮助我正确显示 X 轴标记(产品)。它没有正确显示,堆栈溢出搜索让我找到了那个解决方案。让我看看这是否有效,我会告诉你的。
    • 谢谢,这行得通。再问一个问题。在您的示例中,查看一些条形如何超出最后一个 Y 轴标记。同样的事情发生在我身上。有没有办法解决这个问题?我希望栏保持在最后一个 Y 轴标记下方,我觉得这样看起来会更好。另外,我非常抱歉无法提供数据集,因为这是与工作相关的事情。
    • @Tuhin 我在另一个问题中有一个答案:stackoverflow.com/a/50193822/1953718,看看它是否适合你的情况。
    • 效果很好。甚至根据年份下拉自动调整标记。太棒了,这么简单的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2018-11-17
    • 1970-01-01
    • 2018-08-31
    • 2021-08-21
    • 2012-04-16
    • 2015-10-16
    相关资源
    最近更新 更多