Отбрасывание вторичной оси Y на комбинированных графиках в R - PullRequest
0 голосов
/ 26 сентября 2018

Я комбинирую две гистограммы, используя R, которые имеют одинаковые оси Y, поэтому я хочу отбросить вторую, как в B:

enter image description here

Я нашел способ сделать это, используя ggplot2, но просто подумал, возможно ли это в функции barplot.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

barplot делает это прямо из коробки.Чтобы проиллюстрировать это, давайте создадим данные, представленные двумя графиками:

a <- c(2,4,6,8,9)
b <- c(5.5,6.5,7.5,8.5,9)

Вот цветовой вектор к параллели c(a,b):

col <- unlist(mapply(rep, c("#fb0019", "#8767fc"), c(2,3, 1,4)))

В этой среде только один вызов функцииделает все это:

barplot(cbind(a, b), beside=TRUE, space=c(0.2, 1.2), names.arg=c("", ""), col=col)

Figure

Этот метод передает два вектора данных в виде столбцов матрицы ( via cbind(a, b)), в результате чего получается две группы баров.Значения space дают соответственно относительное расстояние между столбцами внутри группы и между группами.Наконец, names.arg подавляет автоматические групповые метки, которые будут опубликованы, а col=col определяет цвета полос слева направо.

0 голосов
/ 26 сентября 2018

Чтобы оба графика стояли ближе друг к другу, как в вашем примере, вам нужно немного вмешаться в par (), и я не уверен, с какими аргументами вам нужно связываться.

Если вам просто нужно избавиться от оси, вы можете использовать axes=F внутри функции barplot.Обязательно укажите диапазон оси Y, чтобы вы знали, что оба графика используют один и тот же масштаб.

a=c(1,2,3)
b=c(2,3,4)

par(mfrow=c(1,2))

barplot(a,ylim=c(0,5))
barplot(b,ylim=c(0,5),,axes=F)

enter image description here

...