2015-10-02 4 views
2

У меня есть две диаграммы, созданные, как показано ниже. Я хотел бы показать их вместе на одной диаграмме с барами, имеющими определенный уровень прозрачности, чтобы обе серии были видны. Как это можно сделать (я могу использовать ggplot, если это помогает)?Перекрывающие гистограммы с прозрачностью

widths1 = c(0.023,0.0507,0.0107,0.1148,0.0623,0.0173,0.0083,0.0189,0.0409,0.072,0.0341,0.0125,0.1083,0.0379,0.0504,0.1426,0.0372,0.0713,0.0932,0.0424,0.0822,0.0511) 
heights1 = c(5.1,7.5,8.4,8.5,9.2,10.4,12.4,12.5,13.3,13.8,14.6,15.1,15.8,17.2,17.6,18,19.4,20.1,21,21.4,24.3,26) 

widths2 = c(0.0716,0.0205,0.0568,0.0658,0.0261,0.0611,0.0313,0.0654,0.0644,0.0294,0.0448,0.0306,0.031,0.0454,0.0891,0.0181,0.0883,0.0765,0.0336,0.0396,0.0315,0.0227,0.0604,0.0394,0.0545) 
heights2 = c(8.3,9.7,11.5,11.8,13.8,14.3,15,15.4,15.8,16.5,17.1,17.1,18.1,19.9,19.9,20.4,21.2,21.6,21.8,24,24.5,24.9,26.6,28.2,29.9) 

barplot(heights1, widths1, space=0, col=c("blue")) 
barplot(heights2, widths2, space=0, col=c("red")) 

Таким образом, области, в которых появляются оба стержня, были бы фиолетовыми, я подозреваю.

Примечание: я видел что-то подобное here, которое выглядит близко к тому, что мне нужно, но я не уверен, как я могу адаптировать его к моему варианту использования (диаграмма на этом примере показывает количество, в то время как я хочу показать значения ряда высот).

ответ

5

Вы можете использовать аргумент alphargb, чтобы создать цвет с прозрачностью. Дополнительное использование add=TRUE в barplot добавить barplot к существующему:

blue <- rgb(0, 0, 1, alpha=0.5) 
red <- rgb(1, 0, 0, alpha=0.5) 

barplot(heights1, widths1, space=0, col=blue) 
barplot(heights2, widths2, space=0, col=red, add=TRUE) 

enter image description here

Смежные вопросы