2016-06-29 2 views
0

Я надеюсь добавить ярлыки «a» и «b» «к моим двум сюжетам, чтобы я мог отличать и обсуждать их более эффективно при записи. Ive пытался сделать это через функции текста и легенды, но я не получаю хороших результатов. В идеале я бы получил а) в самом верхнем левом углу сюжета ep.var.hist (1-й сюжет) и b) в самом верхнем левом углу сюжета tp.var.hist (2-й сюжет), с ярлыками, сидящими вне фактического графика и над метками оси y. Мой код нижеЭтикетки за пределами участков

par(mfrow=c(2,1), mar=c(4,4,0.9,4)) 
ep.var.hist<-hist(data.ep, breaks=5, xlim=c(0,0.011), ylim=c(0,6000), xlab=NULL, main=NULL) 
tp.var.hist<-hist(data.tp, breaks=66, xlim=c(0,0.011), ylim=c(0,6000), xlab="Variance", main=NULL) 

ответ

1

Работа с cowplot пакет, предназначенный для облегчения процесса получения публикации готовых участков.

library(cowplot) 
library(ggplot2) 

sepal <- ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + 
    geom_bar(stat = "identity") + 
    theme(text = element_text(margin = margin(), debug = FALSE)) 

petal <- ggplot(data = iris, aes(x = Species, y = Petal.Length)) + 
    geom_bar(stat = "identity") + 
    theme(text = element_text(margin = margin(), debug = FALSE)) 

plot_grid(sepal, petal, labels = c("A", "B")) 

plot_grid и save_plot (полированная версия ggsave) мои два любимых cowplot функции. Я настоятельно рекомендую посмотреть страницы справки для получения дополнительных параметров и настройки.

Если вы действительно хотите, чтобы держать это просто graphics попробовать это решение, я думаю, что вы ищете adj = 0:

par(mfrow=c(2,1), mar=c(4,4,0.9,4)) 
petal <- hist(iris$Petal.Length, main = "Petal", adj = 0) 
sepal <- hist(iris$Sepal.Length, main = "Sepal", adj = 0) 

Полный отказ от ответственности я бы сильно рассмотреть вопрос об использовании ggplot2 в долгосрочной перспективе, как @rosscova предложил. У вас будет намного больше возможностей для управления деталями ваших сюжетов, а также множество современных визуализаций, которые база R просто не может сделать. Есть причина, почему ggplot2 так популярен :)

+0

В настоящее время я не планирую использовать ggplot. Есть ли другой способ сделать это или мне нужно идти вперед и начинать строить с использованием ggplot? – Will

+0

Если вы делаете много заговоров, я бы рекомендовал познакомиться с ggplot, это будет полезно. – rosscova

+0

@ Будет обновлено с помощью решения baseR, которое может быть приемлемым, хотя и не столь красивым. – Nate

0

EDIT: Прошу прощения, я пошел вперед и ответил, не понимая, что вы сказали «вне сюжета», чего я не думаю, что мой ответ может быть достигнут.

Я не знаю, как это сделать в базе, но ggplot2 имеет функцию annotate для достижения того, что вам нужно. Вот пример, из которого вы можете начать играть (я добавил несколько битов вы могли бы хотеть, чтобы помочь вам начать работу):

library(ggplot2) 
plot <- ggplot(diamonds) + 
    geom_histogram(aes(carat), bins = 30) + 
    annotate("text", label = "label here", x = 1, y = 7500, col = "red") + 
    annotate("text", label = "and another", x = 2, y = 5500, col = "blue") 

plot <- plot + 
    xlim(0, 3) + 
    ggtitle("Main title") + 
    xlab("label x") + 
    ylab("label y") 

plot 

Отрегулируйте x и y значения в пределах функции annotate, чтобы переместить метку вокруг. Вы можете добавить столько из них, сколько хотите, добавив больше звонков на annotate.

+0

, но 'cowplot' может ... – Nate

+0

Действительно. Голосование за ваш ответ тогда, заслуженный :) – rosscova

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