R 如何控制酒吧间的空间?

R 如何控制酒吧间的空间?,r,R,我正在使用以下代码绘制条形图: heights1=c(5,5,4.5,4) barplot(heights1, main="Language ", names.arg=c("Hindi R/W", "Speak" , "English R/W","Speak"), ylab=" level ", xlab="Language starting with mostly used", cex.names=0.8, col=c("darkblue","red")) 输出如下所示: 但我想要的

我正在使用以下代码绘制条形图:

heights1=c(5,5,4.5,4)
barplot(heights1, main="Language ", names.arg=c("Hindi R/W", "Speak" , "English 
R/W","Speak"), ylab=" level ", xlab="Language starting with mostly used",  
cex.names=0.8, col=c("darkblue","red"))
输出如下所示:


但我想要的是“印地语R/w”和“Speak”应该结合起来,没有任何间隙,然后一个空格出现,然后“English R/w”和“Speak”应该结合起来。我该怎么做

您应该在
barplot()
函数中添加参数
space=
,其中数字对应于每个条前的空格

heights1=c(5,5,4.5,4)    
barplot(heights1, main="Language ", names.arg=c("Hindi R/W", "Speak" , "English 
  R/W","Speak"), ylab=" level ", xlab="Language starting with mostly used",  
  cex.names=0.8, col=c("darkblue","red"),space=c(0.2,0,0.2,0))

如果数据格式正确,您的生活会轻松得多。
条形图
函数接受
向量
矩阵
的输入。当输入为
矩阵时
,R可以使用
dimnames
为您自动添加标签

试试这个:

heights1 = c(5, 5, 4.5, 4)
barplot(t(matrix(heights1, ncol=2, byrow=TRUE, 
                 dimnames=list(c("Hindi", "English"), 
                               c("Read/Write", "Speak")))), 
        main="Language ", ylab="Level", 
        xlab="Language starting with mostly used", 
        col=c("darkblue", "red"), 
        beside=TRUE, ylim = c(0, 6), 
        legend.text = TRUE,
        args.legend = list(x = "topright")) 

如果两组之间的间隔太大,那么@Didzis的建议在这里也适用。将
space=c(0.2)
添加到
barplot
命令中,记住文档中的详细信息:

如果
高度
是一个矩阵,而
旁边的
空格
可以由两个数字指定,其中第一个是同一组中条之间的空格,第二个是组之间的空格。如果未明确给出,则如果高度为矩阵且旁边为TRUE,则默认为
c(0,1)
,否则默认为
0.2


这回答了这个问题,但是(对我来说)没有解决OP中的数据目前对于
barplot
函数不是非常有用的格式这一问题。