2011-12-09 68 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