首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何合并R(堆叠条形图)中的标号?

如何合并R(堆叠条形图)中的标号?
EN

Stack Overflow用户
提问于 2013-08-16 00:46:00
回答 1查看 1.5K关注 0票数 1

我在R中的数据如下:

代码语言:javascript
复制
    1-12 1-12 1-15 1-15 1-20 1-20 2-6 2-6 3-1-1 3-1-1 3-1 3-1 3-2 3-2 3-3 3-3
N    0    0   14    0   17    0   9   0    27     0   9   0  13   0  33   0
P    0    0    0   12    0   12   0   5     0    13   0   6   0   0   0   9
F    0    0    0    0    0    0   0   2     0    14   0   0   0   6   0  20

根据dput(数据),R的结果是:

代码语言:javascript
复制
    structure(c(0L, 0L, 0L, 0L, 0L, 0L, 14L, 0L, 0L, 0L, 12L, 0L, 
17L, 0L, 0L, 0L, 12L, 0L, 9L, 0L, 0L, 0L, 5L, 2L, 27L, 0L, 0L, 
0L, 13L, 14L, 9L, 0L, 0L, 0L, 6L, 0L, 13L, 0L, 0L, 0L, 0L, 6L, 
33L, 0L, 0L, 0L, 9L, 20L), .Dim = c(3L, 16L), .Dimnames = list(
c("N", "P", "F"), c("1-12", "1-12", "1-15", "1-15", "1-20", 
"1-20", "2-6", "2-6", "3-1-1", "3-1-1", "3-1", "3-1", "3-2", 
"3-2", "3-3", "3-3")))

我的代码是:

代码语言:javascript
复制
barplot(data,space=c(1,0.25),legend=rownames(data),col=c('white','black','grey'),las=2)

它看起来像一个普通的条形图,每一列底部都有一个标签.

但是,x轴上的标签太多了,我想把两个列的名称合并为一个(因为它们有相同的名称),也就是说,在前两列的中间,底部只有一个标签"1-12“,所以总共有八个标签。我怎么才能改变呢?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-08-16 01:27:43

如果您只希望在每个组中都有以中心为中心的标签,您可以这样做:

代码语言:javascript
复制
# suppress the x-axis and save your original plot's bar locations
bp <- barplot(data,space=c(1,0.25),legend=rownames(data),
             col=c('white','black','grey'),las=2,
             xaxt="n")

# draw a new axis using these values
axis(1,at=rowMeans(matrix(bp,ncol=2,byrow=TRUE)),
     labels=unique(colnames(data)),lty=0)

当然忽略了重叠的传说..。可以通过在原始的legend.args调用中更好地使用barplot来修复

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18264135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档