У меня есть кадр данных, 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
Я использую пакеты plotrix
и devtools
и уже установил их оба, а также функцию 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
), который я использую, доступен здесь.
Я пытаюсь построить данные во фрейме данных, указанном выше, вот так:
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")
Я использую справочную диаграмму, чтобы заполнить столбцы графика.
Я хочу, чтобы имена строк df были метками оси x, а имена столбцов df были в легенде.
Тем не менее, я продолжаю получать эту ошибку:
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
Я понятия не имею, что означает эта ошибка и почему я ее получаю.
Извините, я не могу предоставить изображение того, как это должно выглядеть, но, надеюсь, вы получите общее представление об этом.
Любая помощь приветствуется.
t()
в аргументе pch просто выглядит неправильно. - person IRTFM   schedule 30.01.2014t()
наpch
, я все равно получу ту же ошибку. Я включилt()
, потому что данные должны быть предоставлены в матричном формате для указания различных символов. Столбцы матрицы должны соответствовать последовательностиpch
параметров. Как кто-то сказал на этой странице . - person Warrior   schedule 30.01.2014