2011-12-09 71 views
6

我使用ggdendro和ggplot生成了樹狀圖。我有兩個問題關於生成的情節。刪除邊距並更改ggplot中標籤的字體樣式

  1. 是否可以從生成的圖中削減一些邊距?
  2. 如何在一個座標軸上更改標籤的字體樣式,例如大小?

在圖中,標有「紅色窗格」的兩個區域是我想要刪除的邊距。沿x軸的六個標籤用黃色標記。我想增加它們的大小。

enter image description here

代碼:

> x<-read.csv("test1.csv",header=TRUE) 
> d<-as.dist(x,diag=FALSE,upper=FALSE) 
> hc<-hclust(d,"ave") 
> dhc<-as.dendrogram(hc) 
> ddata<-dendro_data(dhc,type="rectangle") 
> ddata$labels$text <- gsub("\\."," ",ddata$labels$text) 
> fig1<-ggplot(segment(ddata))+geom_segment(aes(x=x0,y=y0,xend=x1,yend=y1)) 
> fig1<-fig1+xlab(NULL)+ylab(NULL)+opts(panel.grid.minor=theme_blank()) 
> fig1<-fig1+scale_x_discrete(limits=ddata$labels$text) 
> fig1<-fig1+coord_flip() 
> last_plot() 
> fig1<-last_plot() 
> ggsave("test1.pdf") 
+0

+1用於發佈代碼和圖形。 – Andrie

+2

如果您也可以發佈'test1.csv',那麼我們可以嘗試回答您的下一個問題,關於標題大小... –

回答

6

爲了增加軸標籤的大小(很多很多)使用theme(在舊版本GGPLOT2這被稱爲opts()的):

+ theme(axis.text.x = element_text(size = 12)) 

會使它們大得多。爲了減少利潤,你可能想使用expand參數:

+ scale_x_continuous(expand = c(0,0)) 

,其中數字是加法和乘法擴張因素的情節限制。

更一般地說,這些東西在herehere這樣的位置都有很好的記錄。或者你可以購買哈德利的書,它將回答幾乎所有你會遇到的ggplot問題。 (認真。)

+1

謝謝。我嘗試了+ scale_x_continuous(expand = c(0,0)),但它會沿着y軸去除這些字符串標籤,並且不會沿着y軸去除邊距。 –

+1

@ bit-question做同樣的事情,但用'scale_y_continuous'去除y margin。 – joran