Я хочу создать гистограмму с несколькими рядами данных на одном графике. Лучший способ, который я могу найти, это multhist()
. Хотелось бы сюжет в стиле, похожем на hist()
, и хотя ggplot()
тоже можно использовать для выполнения этой задачи, стиль графики не тот, что мне нужен.
Вот некоторые примеры данных:
df <- structure(list(year = c(2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L), count = c(187L, 199L, 560L, 1000L, 850L,
400L, 534L, 911L, 390L, 1008L, 1173L, 1222L, 810L, 950L, 752L,
1125L, 468L, 710L, 290L, 670L, 855L, 614L, 1300L, 950L, 670L,
888L, 490L, 557L, 741L, 700L, 954L, 378L, 512L, 780L, 951L, 398L,
1544L, 903L, 769L, 1399L, 1021L, 1235L, 1009L, 1222L, 255L)), .Names = c("year",
"count"), class = "data.frame", row.names = c(NA, -45L))
И вот код, который я использовал до сих пор:
require(plotrix)
d2011<-df$count[df$year=="2011"]
d2012<-df$count[df$year=="2012"]
year<-list(d2011,d2012)
mh <- multhist(year, xlab="Count", ylab="Frequency", main="", cex.axis=1, col=c("dark gray", "light gray"), breaks=seq(0,1600, by=200))
box(bty="l", col="black")
legend.text<-c("2011","2012")
legend(locator(1), legend=legend.text, col=c("dark gray", "light gray"), pch=15, bty="n", cex=0.8)
Это дает мне мультигистограмму в стиле гистограммы, но у меня возникают проблемы с изменением двух параметров графика.
Я бы хотел, чтобы график больше походил на гистограмму, а не на гистограмму, поэтому, во-первых, я хочу удалить (или уменьшить) пространство между столбцами. Я пробовал использовать
space = NULL
, но эта команда не работает с multhistЯ хотел бы изменить ось X, чтобы деления оси присутствовали между полосами на графике, а текст оси был выровнен с делениями, а не располагался в середине полосы. Я пытался использовать
axis(side=1, …)
, но, поскольку multhist использует объекты списка для создания графиков, эти команды не работают.
Любые предложения будут ценны. Предложения по другим полезным графическим пакетам, которые могут строить гистограммы с несколькими наборами данных, также будут приветствоваться.
theme
s) в ggplot2? - person Roland   schedule 26.07.2013