R 如何指定打印区域的一侧作为条形图的基础

R 如何指定打印区域的一侧作为条形图的基础,r,graph,data-visualization,R,Graph,Data Visualization,在R中制作条形图很容易(使用barplot()函数)。默认情况下,竖杆从底部开始向上(即底部位于侧面=1)。此外,您可以使用horiz=T参数制作一个底部位于左侧(侧=1)的条形图。我想做一个条形图,条形图的底部在右边(边=4) 您是如何做到这一点的? 如何在顶部制作底座(侧面=3)? 如果可能的话,我更愿意使用基本图形来实现这一点 一个快速的选择(可能有点混乱)是将所有数据乘以-1,然后条形图将从轴向下或向左移动,而不是向上或向右移动。您可能希望抑制x轴并手动输入不带负号的值 其他选项是编

在R中制作条形图很容易(使用
barplot()
函数)。默认情况下,竖杆从底部开始向上(即底部位于侧面=1)。此外,您可以使用
horiz=T
参数制作一个底部位于左侧(侧=1)的条形图。我想做一个条形图,条形图的底部在右边(边=4)

  • 您是如何做到这一点的?
  • 如何在顶部制作底座(侧面=3)?
如果可能的话,我更愿意使用基本图形来实现这一点

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

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

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

编辑

事实证明,使用base
barplot
函数有一种不那么麻烦的方法,请参见此示例(并根据您的情况进行修改)

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


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

谢谢您的帮助,Greg。我已经考虑过乘1的策略,很可能最终会采用它。但是我希望(鉴于我的代码的典型质量,这可能很难相信)一个非kluge的解决方案。@gung,不那么麻烦的是,您可以指定
xlim
参数,使轴从右向左增加,这对
条形图有效,请参见上面编辑的答案中的示例。谢谢!这是一个非常聪明的把戏,它就像一个符咒!
barplot( 1:5, horiz=TRUE, xlim=c(5,0) )