2016-03-08 8 views
5

Bazı iletilerde atıfta bulunulan plotmath ifadelerini kullanarak y-eksenimin birimleri için bir üst simge almaya çalışıyorum. Ben expression ve ayrıca here kullanarak konuları inceledim, ama sadece benim için çalışmıyor. İşte ben bugüne kadar ne var:Plotmath kullanarak ggplot2'de üst simge oluşturma

ggplot(data.frame, aes(Region, Zmar_sh)) + 
    geom_boxplot() + xlab("Region") + 
    ylab(expression(paste("eelgrass shoot density", " (shoots/", expression(m[2])))) + 
    ggtitle(expression(paste(italic("Zostera marina")," shoot density in X Bay", sep = " "))) 

ggtitle ifade çalışır, ama yine de üst simge olarak "2" ile okuma "deniz çayırı ateş yoğunluğu (sürgünler/m2)" benim y ekseni girmem. Neyi kaçırıyorum?

cevap

4

İkinci expression()'a ihtiyacınız yok. Ayrıca, m[2] bir alt simge verir. Üst simge için m^2 kullanın. paste kullanmak

ggplot(mtcars, aes(wt, mpg)) + 
    geom_point() + 
    ylab(expression(paste("eelgrass shoot density", " (shoots/", m^2,")"))) 

Aslında, hatta gerekmez:

Burada yerleşik mtcars veri çerçevesiyle bir örnek verilmiştir. Bunun yerine yapabilirsiniz:

ylab(expression(eelgrass~shoot~density~(shoots/m^2))) 

~ "boşluk" karakteridir. Kelimeler arasında gerçek boşluklar koyarsanız (~ kullanmadan), bir hata alırsınız. Ancak okunabilmesi için, ayrıca bunu yapabilirsiniz: Yukarıdaki kod eşdeğerdir

ylab(expression(eelgrass ~ shoot ~ density ~ (shoots/m^2))) 

, boşluk sürece ~ olmadığı için göz ardı edilir çünkü.

enter image description here

+0

Teşekkür:

ylab ifadelerin herhangi

yukarıda aşağıdaki arsa verecek! Bu kullanımının farkında değildim. Kaybettiğim küçük bir şey olduğunu biliyordum. Tabii ki üst simge konusunda haklıydın. Ayrıca kodumdaki aboneler ile çalışıyorum ve yazıya atmak için yanlış terimi yazdım. – KVininska

İlgili konular