'at'和'labels'长度不同,R!= 10中的10个错误

时间:2014-01-29 23:27:01

标签: r plot bar-chart devtools plotrix

我有一个数据框df,看起来像这样:

      a   b   c   d   e   f   g    h     i    j   k   l    m
1a    4   4   3   4   3   4   3   4.0   4.0   4   4   4   3.9
1b    9   9   9   9   9   9   9   8.1   8.8   9   9   9   8.5
1c    8   8   9   8   9   8   8   8.0   9.0   8   9   8   8.3
1d    8   8   8   9   8   9   8   8.0   8.0   8   8   8   8.5
1e    4   4   4   4   4   4   4   4.0   4.0   4   4   4   4.0
2a    3   4   3   4   3   4   3   4.0   3.0   4   3   4   3.8
2b    8   8   8   8   8   8   8   8.0   8.0   8   8   8   8.0
2c    8   8   8   8   8   8   8   9.0   8.0   9   8   8   8.3
2d    8   9   8   8   8   9   8   9.0   8.0   9   8   9   8.0
2e    4   3   4   3   4   4   4   4.0   4.0   4   4   3   3.9

我正在使用plotrixdevtools软件包,并且已经安装了它们,barp2函数如下:

# install the packages and load the barp2 function
install.packages('plotrix')
install.packages('devtools')
install_url("http://cran.r-project.org/src/contrib/Archive/plotrix/plotrix_3.5-2.tar.gz")
source_gist("https://gist.github.com/tleja/8592929")

# load the packages
library(plotrix)
library(devtools)

我正在使用的修改后的代码(barp2)可用here

我试图在上面提供的数据框中绘制数据,如下所示:

par(mar = c(5, 4, 4, 6))
barp2(df, pch=t(c(0:4, 7:14)), names.arg=rownames(df), legend.lab=colnames(df),
    ylab="y label", main="main")

我正在使用reference chart来填充情节的条形图。

我希望df的rownames为x轴标签,df的colnames为图例。

但是,我一直收到这个错误:

Error in axis(1, at = x, labels = names.arg, cex.axis = cex.axis) : 
    'at' and 'labels' lengths differ, 13 != 10

我理解这是因为rownames(df)的长度为10,而colnames(df)的长度为13(显然不相等),但我不知道如何解决这个问题,所以数据框中的数据显示在条形图中。

或者如果我使用t(df)交换列和行,就像这样:

barp2(t(df), pch=t(c(0:4, 7:11)), names.arg=rownames(df), legend.lab=colnames(df),
ylab="y label", main="main")

我收到此错误:

Error in seq.default(x1[frect] + xinc[frect]/2, x2[frect] - xinc[frect]/2,  : 
    wrong sign in 'by' argument

我不知道这个错误意味着什么,也不知道我为什么会这样做。

抱歉,我无法提供它应该是什么样子的图像,但希望你能够了解它的基本概念。

非常感谢任何帮助。

0 个答案:

没有答案