2011-09-27 101 views
4

我正在通過更改。當我在屏幕上查看結果圖時,它看起來很棒。但是,當我將它另存爲pdf時,x軸標籤與軸號碼太接近。在ggplot2中設置base_size時重疊的軸標籤

一件小事:

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() 

回答

3

我認爲這可能是一個問題與pdf。使用ggsavevjust = -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

5

默認情況下GGPLOT2使軸冠軍如此接近軸的文本。一個小竅門是字符串

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

output

中插入一個換行符 \n