从x轴开始的绘图条不等于0并延伸到两侧

时间:2015-05-23 15:23:46

标签: r plot bar-chart

假设我的数据值是

  x <- c(30,50,70,120,150)

我希望它们采用横向格式(horiz = T)。 现在我的y轴位置是x = 100,我希望条形从x = 100开始,而不是从0开始,它应该延伸到左右两侧 怎么办?

x=c(30,50,70,120,150)
barplot(x,horiz=T)
axis(2,pos=100)

但是这从零开始并延伸到30,50,70,120等。我想要的是条形应该从x = 100开始并向左延伸30,50,70并向右延伸100+值

2 个答案:

答案 0 :(得分:2)

尝试以下示例:

count = 0
current = None

with open(filename) as fo:
   for line in fo:
       if line.startswith('>'):
           if current and count:
               print('{} {:2d}'.format(entry, count))
           current = line.strip()
           counts = 0
       else:
           count += 1
   if current and count:
       print('{} {:2d}'.format(entry, count))

enter image description here

答案 1 :(得分:2)

ggplot解决方案:

x <- c(30,50,70,120,150)
x_100 <- data.frame(x=seq_along(x),y=x-100)
y_br <- seq(-75,50,25)

ggplot(x_100,aes(x=x,y=y)) + geom_bar(stat="identity") + 
   coord_flip() + scale_y_continuous(breaks=y_br,labels=y_br+100)

数据必须转到ggplot的数据框。我从数据中减去100,然后使用scale_y_continuous将标签放回“原始”值。

ggplot中,条形图用竖线绘制。 coord_flip用于交换x轴和y轴,这会导致水平条形。

enter image description here