2014-09-06 3 views
0

Я пытаюсь построить 2 штабелированных бара со временем. По существу, они будут похожи на сгруппированные бары со временем (beside=TRUE), но также будут сложены. Другие вопросы, связанные с stackoverflow, отвечают на подобные проблемы, такие как сложенные и сгруппированные диаграммы, но не работают здесь, хотя, пожалуйста, позвольте мне сказать, если вы видели хороший пример, который я пропустил.Сгруппированный, штабелированный барплот со временем

Моя стратегия заключалась в том, чтобы построить первый набор баров, создать пространство между ними и попытаться построить второй в этих местах с par(new=TRUE) или add = TRUE аргумент в barplot. Однако второй набор полос всегда перекрывает первый. Документация Barplot предполагает, что аргумент offset должен быть полезен, но я не могу найти никаких примеров, использующих его, и мои собственные эксперименты никогда не выглядят так, как ожидалось.

Вот пример кода, который я пытался до сих пор:

data1 = cbind(c(1,1.25),c(1.2,1.5),c(.75,1.2)) 
data2 = cbind(c(1.3,1.5),c(1,1.25),c(1.25,.75)) 

barplot(data1, 
     space = 3, 
     col = c(2,3)) 
barplot(data2, 
     space = 3, 
     col = c(4,5), 
     add = TRUE) 

Любые предложения или ресурсы будут весьма благодарны.

+0

Поскольку ответ, кажется, использует «пространство» в 'barplot' и есть 168 хитов в так поиск по: [г] barlplot пространство, я хотел бы спросить, если вы сделали какие-либо serching , (Я действительно, очень устал от вопросов о барплоте.) –

+0

@BondedDust Я просмотрел их, но, хотя некоторые из них, безусловно, схожи, я не смог найти то, что мог использовать в своей ситуации, хотя я, конечно, мог бы что-то забыл. Кроме того, в то время, когда я думал, что решение, скорее всего, исходит из аргумента offset, который имеет небольшую документацию и несколько примеров. Я искал разные вещи в течение примерно двух часов, прежде чем публиковать свой вопрос, поэтому я приложил все усилия, чтобы не быть избыточным - хотя я снова признаюсь, что, возможно, что-то упустил. – DaedalusBloom

ответ

2

Вы можете отрегулировать параметр space второго участка. В этом случае пространство перед первым баром должно быть больше, чем для первого графика. Однако промежутки между полосами должны быть одинаковыми. Вы можете использовать аргумент space = c(4, 3, 3) для второго сюжета.

barplot(data1, 
     space = 3, 
     col = c(2, 3)) 
barplot(data2, 
     space = c(4, 3, 3), 
     col = c(4, 5), 
     add = TRUE) 

enter image description here

+0

Большое спасибо за помощь, это именно то, что мне нужно! – DaedalusBloom