根据数字向量设置水平条

时间:2013-10-10 15:21:45

标签: r plot bar-chart

我正在尝试根据我提供的矢量设置我的酒吧。向量是用于命名条形的names.arg函数的替代。我想要实现的是:我想按照我提供的方式绘制条形图(类似于直方图排序)。目标是根据矢量绘制条形图,而不是以相等的间隔绘制条形图。

从这里的例子来看,我应该让左手边的大部分钢筋相对于现在均匀分布。

a = c(1,2,6,8,11,2,3)
b = c(-0.2, 0.1, 0.12,0.13,0.2,0.5,0.6)
data = cbind(a,b)
barplot(data[,1], names= b, col =rgb(0,200,0,50,maxColorValue=255))

1 个答案:

答案 0 :(得分:1)

这是编辑前您的问题的答案,即如何使用由数字向量确定的位置绘制水平条。正如我在评论中写的那样,barplot中的base没有at参数,即“给出应绘制箱图的位置的数字向量”(参见?boxplot })。

这是ggplot替代方案。在ggplot中,数据必须位于数据框中。使用coord_flip交换x和y轴(使x垂直,y水平)。我还将先前的x值(a)设置为y值,反之亦然。将expand设置为零以移除条形“底部”与轴之间的边距。

df <- data.frame(a = a, b = b)

ggplot(data = df, aes(x = b, y = a)) +
  geom_bar(stat = "identity",
           position = "dodge",
           width = 0.03,
           alpha = 0.5) +
  geom_point() +
  coord_flip() +
  scale_y_continuous(expand = c(0,0)) +
  theme_classic() 

enter image description here