假设我的数据值是
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+值
答案 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))
答案 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轴,这会导致水平条形。