【问题标题】:How to specify a side of the plotting area as the base of a barplot如何将绘图区域的一侧指定为条形图的基础
【发布时间】:2023-03-28 03:19:01
【问题描述】:

在 R 中制作条形图很容易(使用 barplot() 函数)。默认设置是垂直条从底部开始向上(即,底部位于 side=1)。此外,您可以使用horiz=T 参数在左侧(side=1)上制作一个条形图。我想用 right (side=4) 上的条形底部制作一个条形图。

  • 你是怎么做到的?
  • 如何在顶部(side=3)制作底座?

如果可能的话,我希望能够使用基本图形来做到这一点。

【问题讨论】:

    标签: r graph data-visualization


    【解决方案1】:

    一个快速的选择(可能有点麻烦)是将所有数据乘以 -1,然后条形图将从轴向下或向左移动,而不是向上或向右移动。您可能想要抑制 x 轴并手动输入不带负号的值。

    其他选项是编写您自己的函数,使用rect 或其他命令从您选择的轴绘制框。

    或者使用网格图形并使用旋转的视口(但这需要放弃基本图形)。

    编辑

    实际上,使用基本barplot 函数的方法不太笨拙,请参阅此示例(并根据您的情况进行修改)。

    barplot( 1:5, horiz=TRUE, xlim=c(5,0) )
    

    您需要将 xlim 参数中的 5 替换为基于您的数据的值,最大值、总和的最大值、之前的 1.04 等。

    这仍然会标记左侧的条(如果您给它标签),但是如果您喜欢,您可以抑制该轴并手动将轴放在右侧。

    【讨论】:

    • 感谢您的帮助,格雷格。我已经考虑过 乘以 -1 策略,并且很可能最终会采用它。但我希望(考虑到我的代码的典型质量,很难相信)有一个非基于 kluge 的解决方案。
    • @gung,不太麻烦的是,您可以指定 xlim 参数以使轴从右到左增加,这适用于 barplot,请参见上面编辑过的答案中的示例。
    • 谢谢!这是一个非常聪明的技巧,它就像一个魅力!
    猜你喜欢
    • 2015-11-10
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多