Добавление меток к оси x на графиках R - PullRequest
1 голос
/ 06 марта 2012

Я пытаюсь добавить метки, соответствующие столбцу (одна переменная), на мою ось x моего графика.Как я могу добавить метки из этого столбца переменной?

Скажите, у меня есть следующая таблица.Он имеет три столбца: время, лечение и проводимость.Я сделал график коробочного графика (который я не могу загрузить, потому что у меня еще недостаточно очков и я новый пользователь).На графике показаны три блока на обработку, хотя на этикетке каждого блока указаны и время, и обработка, т.е. для обработки EV: «17.EV, 19.EV, 21.EV» для каждого из трех блоков.Как я могу указать название лечения отдельно?

Time    Treatment   Conductivity
17  EV  47.1
17  EV  41.5
17  EV  53.1
17  EV  57.5
19  EV  53.2
19  EV  68.8
19  EV  69.4
19  EV  28.6
21  EV  56
21  EV  72.9
21  EV  73
21  EV  30
17  Z1a 86
17  Z1a 108
17  Z1a 81.1
17  Z1a 60.5
19  Z1a 74
19  Z1a 90
19  Z1a 109
19  Z1a 98
21  Z1a 84
21  Z1a 96.3
21  Z1a 114
21  Z1a 109.8
17  Z1b 53.3
17  Z1b 60.6
17  Z1b 56.2
17  Z1b 40.5
19  Z1b 61.2
19  Z1b 69.1
19  Z1b 64.1
19  Z1b 49.6
21  Z1b 63.5
21  Z1b 75.8
21  Z1b 73.3

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Я предполагаю, что вы используете код, похожий на:

boxplot(data=dat, Conductivity ~ Treatment + Time)

Я большой поклонник пакета ggplot2. И решил бы проблему с этим.

Решение быстрое и простое!

library(ggplot2)

dat <- read.table('clipboard', header=T)
ggplot(dat, aes(colour=factor(Time), x=Treatment, y = Conductivity))+geom_boxplot()
0 голосов
/ 06 марта 2012

См. ?boxplot, аргумент names:

имена: групповые ярлыки, которые будут напечатаны под каждым коробочным графиком. Можно быть символьным вектором или выражением (см. plotmath).

Чтобы вы могли сделать:

boxplot(Conductivity ~ Treatment + Time, 
        names=rep(levels(dat$Treatment),each=3), 
        data=dat)

levels(dat$Treatment) возвращает c("EV","Z1a","Z1b"), а rep(xxx,each=3) возвращает c("EV","EV","EV","Z1a","Z1a","Z1a","Z1b","Z1b","Z1b) (поскольку имеется 9 коробочных графиков, требуется 9 имен).

Если вам нужно только одно имя на 3 боксплота - я не уверен, как это сделать с базовой графикой, вам, вероятно, придется использовать графику ggplot2 или lattice.

В качестве отступления - если вы создаете 9 коробочных графиков (т.е. по одному для каждой пары (обработка, время)), действительно ли вы хотите удалить информацию о времени из коробочных диаграмм? Тогда будет невозможно определить, в какое время конкретный бокс-заговор предназначен?

...