2011-12-09 9 views
6

He generado un dendrograma usando ggdendro y ggplot. Tengo dos problemas con respecto a la trama generada.Eliminando el margen y cambiando el estilo de fuente para las etiquetas en ggplot

  1. ¿Es posible recortar algo de margen de la gráfica generada?
  2. Cómo cambiar el estilo de fuente, por ejemplo, tamaño, para la etiqueta a lo largo de un eje?

En el gráfico, las dos áreas marcadas con "panel rojo" son los márgenes que me gustaría eliminar. Las seis etiquetas a lo largo del eje x están marcadas con un color amarillo. Me gustaría aumentar el tamaño de ellos.

enter image description here

El código:

> 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 Para publicar código y un gráfico. – Andrie

+2

si puede publicar 'test1.csv' también podemos intentar responder su próxima pregunta, sobre el tamaño del título ... –

Respuesta

6

para aumentar el tamaño de las etiquetas de los ejes (y mucho más) se utiliza theme (en versiones anteriores de ggplot2 esto se llama opts()):

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

los hará mucho más grandes. Para la reducción de los márgenes, usted puede desear utilizar el argumento expand:

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

donde los números son el aditivo y multiplicativo de los factores de expansión de los límites de la trama.

En general, estas cosas están bastante bien documentadas en ubicaciones como here o here. O simplemente podría comprar el libro de Hadley, que responderá a casi todas las preguntas ggplot que tenga. (En serio)

+1

Gracias. Probé + scale_x_continuous (expand = c (0,0)), pero eliminará esas etiquetas de cadena a lo largo del eje y, y no eliminó el margen a lo largo del eje y. –

+1

@ bit-question Haga lo mismo pero con 'scale_y_continuous' para eliminar los márgenes y. – joran

Cuestiones relacionadas