Функция barplot (из графического пакета) требует либо вектора, либо матрицы значений, описывающих столбцы, составляющие график. Не фрейм данных. Итак, если ваши данные имеют такую структуру:
> X <- matrix(c(12,25,35,10), nr=2)
> dimnames(X) <- list(Color=c("Y","N"), Person=c("Jenny","Jim"))
> X
Person
Color Jenny Jim
Y 12 35
N 25 10
Что представляет собой таблицу отсчетов 2x2, то вы можете легко построить это:
> barplot(X)
Конечно, R обычно дает минимальный результат В том числе графики, чтобы сделать его более презентабельным, вам нужно добавить несколько аргументов.
op <- par(mar=par("mar") + c(0,0,0,1)) # add some space for the legend on the right, saving the original pars
barplot(X, xlab="Person", ylab="Count", # add axis labels
las=1, # make tick labels horizontal
col=c("turquoise2","tomato"), border="white", # change colors
legend=TRUE, # add a legend with some parameters...
args.legend=list(x="right", title="Color", bt="n", border="white", inset=-0.2)
)
par(op) # restore original graphical parameters
![enter image description here](https://i.stack.imgur.com/bn2gH.png)
Результат похож на график по умолчанию, создаваемый ggplot, для которого требуется кадр данных, а не матрица.