Метки перекрывающихся осей при установке base_size в ggplot2 - PullRequest
5 голосов
/ 27 сентября 2011

Я меняю base_size через theme_set. Когда я смотрю полученный сюжет на экране, он выглядит великолепно. Тем не менее, когда я сохраняю его в формате PDF, метка оси X находится слишком близко к номерам оси.

Одна маленькая вещь:

 theme_set(theme_bw(base_size = 9))

не вызывает никаких проблем, но

 theme_grey(theme_bw(base_size = 9))

делает. Вот пример графика:

enter image description here

R код

require(ggplot2)
theme_set(theme_bw(base_size = 9))

#Data
m = c(0.475, 0.491, 0.4800, 0.4318, 0.4797, 0.5718)
m = c(m, 0.00252, 0.00228, 0.00254, 0.00291, 0.00247, 0.00201)
m = c(m, 0.306, 0.260, 0.3067, 0.3471, 0.3073, 0.2357)

s = c(0.0172, 0.0681, 0.0163, 0.0608, 0.0170, 0.1088)
s = c(s, 0.000087, 0.000367, 0.000091, 0.000417, 0.000094, 0.000417)
s = c(s, 0.0092, 0.0447, 0.0110, 0.0593, 0.0113, 0.0504)

df = data.frame(m=m, s=s)

df$data_set = as.factor(c("Data set 1", "Data set 2"))
df$est = factor(rep(c("A",  "B", "C"), each=2))
df$par = rep(c("c1", "c2", "c3"), each=6)

g = ggplot(data =df, aes(y=est, x=m)) +
  geom_point() +
  geom_errorbarh(aes(xmax = m + 2*s, xmin = m-2*s), width=0.1) +
  facet_grid(data_set~par, scales="free_x") +
  xlab("Parameter value") + ylab("")
g

pdf("figure3.pdf", width=7.5, height=3.5)
print(g)
dev.off()

Ответы [ 2 ]

6 голосов
/ 29 ноября 2011

По умолчанию ggplot2 делает заголовки осей настолько близкими к тексту оси.Хитрость заключается в том, чтобы вставить символ новой строки \n в строку

  xlab("\nParameter value") + ylab("")

output

4 голосов
/ 27 сентября 2011

Я думаю, это может быть проблема с pdf. Использование ggsave с vjust = -0.5 сработало для меня. Я бы заменил последние три строки вашего кода на

ggsave('figure3.pdf', g + opts(axis.title.x = theme_text(vjust = -0.5)), 
   width = 7.5, height = 3.5)

Вот вывод.

enter image description here

...