manipulation ggtitle ggplot change r ggplot2 format italic

ggtitle - R ggplot2 Uso de cursiva y no cursiva en la misma etiqueta de categoría



ggtitle position (1)

Puede hacer un vector de expression s, y aplicarlo al argumento labels en scale_x_discrete :

labs <- sapply(strsplit(as.character(tmp.data$finalnames), " "), function(x) { parse(text = paste0("italic(''", x[1], "'')~", x[2])) }) ggplot(tmp.data, aes(finalnames,value)) + geom_bar(stat="identity") + coord_flip() + scale_x_discrete(labels = labs)

Salida:

Si tiene espacios en sus etiquetas, por ejemplo, OTU 100 , puede que desee sustituir una tilde por el espacio, por ejemplo, OTU~100 .

Para mi figura de ggplot, quiero etiquetar categorías en una barra con la primera palabra en cursiva, mientras que las siguientes palabras no están en cursiva. Quiero que las etiquetas de categoría tengan el siguiente aspecto:

Staphylococcacae (OTU 1)

Streptococcus (OTU 300)

He encontrado ejemplos usando expression () donde puedo poner en cursiva algunas etiquetas de categoría, pero me gustaría poder hacer esto para muchas categorías diferentes. El código para hacer un diagrama es el siguiente (pero mis datos tienen muchas más barras para trazar).

tmp.data <- data.frame(bactnames=c("Staphylococcaceae","Moraxella","Streptococcus","Acinetobacter"),OTUname=c("OTU_1","OTU_2","OTU_3","OTU_4"),value=c(-0.5,0.5,2,3)) tmp.data$bactnames2 <- paste0(tmp.data$bactnames," (",tmp.data$OTUname,")") tmp.data$finalnames <- factor(tmp.data$bactnames2,levels=tmp.data$bactnames2[order(tmp.data$value)],ordered=TRUE) ggplot(tmp.data, aes(finalnames,value)) + geom_bar(stat="identity") + coord_flip()

Cualquier idea sería apreciada, y avíseme si puedo aclarar algo.