Yunan sembolleri ggplot2'de nasıl kullanılır?


102

Kategorilerimin Yunan harfleriyle adlandırılması gerekiyor. Ben kullanıyorum ggplot2ve verilerle çok güzel çalışıyor. Ne yazık ki bu Yunan sembollerini x eksenine (çentik işaretlerine) nasıl yerleştireceğimi ve aynı zamanda efsanede görünmelerini sağlayamıyorum. Bunu yapmanın bir yolu var mı?

GÜNCELLEME: Bağlantıya bir göz attım , ancak yapmak istediğim şeyi başarmak için açıklanmış iyi bir yöntem yok.


4
expressionFonksiyonun tartışmasına buradan bakın: stackoverflow.com/questions/1395105/getting-latex-into-r-plots
— DrewConway

viewportsBir ggplot2'den almak için herhangi bir ipucu var mı ? Bu yapılabilirse, x-tic işaretlerini değiştirmenin doğrudan olacağına inanıyorum.
— Sam

Yanıtlar:


153

İşte yunan sembollerinin ggplot2'ye nasıl yerleştirileceğini açıklayan mükemmel bir wiki bağlantısı . Özetle, Yunan sembollerini elde etmek için yapmanız gerekenler

  1. Metin Etiketleri: veya parse = Tiçinde kullanın .geom_textannotate
  2. Eksen Etiketleri:expression(alpha) Yunan alfa elde etmek için kullanın .
  3. Faset Etiketleri:labeller = label_parsed İçeride kullanın facet.
  4. Gösterge Etiketleri: Göstergebquote(alpha == .(value)) etiketinde kullanın .

Bu seçeneklerin detaylı kullanımını linkte görebilirsiniz.

DÜZENLE. Onay işaretleri boyunca Yunan sembollerini kullanma amacına şu şekilde ulaşılabilir:

require(ggplot2);
data(tips);
p0 = qplot(sex, data = tips, geom = 'bar');
p1 = p0 + scale_x_discrete(labels = c('Female' = expression(alpha),
                                      'Male'   = expression(beta)));
print(p1);

Bunu yaparken mevcut olan çeşitli semboller ve bunların nasıl kullanılacağı hakkında eksiksiz dokümantasyon için bkz ?plotmath.


O Yunan Sembollerinin tikleri işaret etmesini istiyorum. Bu cevabı takip ettiğimden emin değilim. Bunu deneyeceğim ve cevap yazacağım. Yön için teşekkür ederim.
— Sam

Bu en azından benim amacım için çalışmıyor. İşaretçi için teşekkürler.
— Sam

@Sam, düzenlememdeki örnek koda bakın. Size x ekseni çentik işaretleriniz boyunca Yunan sembolleri verir. Aradığın bu muydu?
— Ramnath

8
Yunan harfinden sonra yıldız işareti ('*') eklemek istiyorum. Bunun nasıl yapılacağını bilen var mı?
— polarize

1
Geçenlerde başka bir seçeneğin kullanmak olduğunu öğrendim substitute, bu expressionçalışmayan yerlerde de işe yarıyor ve hatta diğer biçimlendirmelere izin veriyor italics, boldvb.
— Sam

40

En basit çözüm: Unicode Karakterleri Kullanın

Hayır expressionveya başka paketler gerekli.
Bunun ggplot için daha yeni bir özellik olup olmadığından emin değilim, ama işe yarıyor. Yunanca ve normal metni karıştırmayı da kolaylaştırır (işaretlere "*" eklemek gibi)

Metin dizesi içinde unicode karakterleri kullanmanız yeterlidir. aklıma gelen tüm seçenekler için iyi çalışıyor gibi görünüyor. Düzenleme: daha önce faset etiketlerinde çalışmıyordu. Görünüşe göre bu bir noktada düzeltildi.

library(ggplot2)
ggplot(mtcars, 
       aes(mpg, disp, color=factor(gear))) + 
  geom_point() + 
  labs(title="Title (\u03b1 \u03a9)", # works fine
       x= "\u03b1 \u03a9 x-axis title",    # works fine
       y= "\u03b1 \u03a9 y-axis title",    # works fine
       color="\u03b1 \u03a9 Groups:") +  # works fine
  scale_x_continuous(breaks = seq(10, 35, 5), 
                     labels = paste0(seq(10, 35, 5), "\u03a9*")) + # works fine; to label the ticks
  ggrepel::geom_text_repel(aes(label = paste(rownames(mtcars), "\u03a9*")), size =3) + # works fine 
  facet_grid(~paste0(gear, " Gears \u03a9"))

Reprex paketi (v0.3.0) tarafından 2019-08-28 tarihinde oluşturuldu


4
Güzel cevap. Unicode karakterler hakkında daha fazla bilgi için, bakınız: stackoverflow.com/questions/27690729/…
— PatrickT

çok esnek!!
— joaoal

2
Bu en iyi yoldur, çünkü expressionveya tarafından oluşturulan nesne türleriyle uğraşmazsınız bquote- karakter nesnelerini başka herhangi bir şekilde kullanabileceğiniz bir karakter nesnesi elde edersiniz.
— GMSL

1
Bu sadece en kolay Yöntem değil, aynı zamanda en iyisidir, çünkü çoğu durumda işe yarar ve diğer işlevlere dayanmaz.
— Squeezie

Bu, yaklaşık yüz satırlık çok sayıda uyarı oluşturur:Warning message in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : “conversion failure on '>3σ' in 'mbcsToSbcs': dot substituted for <cf>
— Patafikss

37

Kullanım expression(delta)küçük harf için 'delta' δve 'Delta' sermayesini almak için Δ.

Yunanca karakterlerin tam listesi:

Α α alfa
Β β p
Γ γ y
Δ δ ö
Ε ε epsilon
Ζ ζ zeta
Η η eta
Θ θ teta
Ι ι yota
Κ κ kappa
Λ λ lambda
Μ μ u
Ν ν nu
Ξ ξ xi
Ο ο OMiCRON
Π π pi
Ρ ρ rho
Σ σ sigma
Τ τ tau
Υ υ upsilon
Φ φ phi
Χ χ chi
Ψ ψ psi
Ω ω omega

DÜZENLEME: Yorumlardan kopyalanır, başka kelimelerle birlikte kullanıldığında aşağıdaki gibi kullanılır:expression(Delta*"price")


1
Nasıl bir etiket alabilirim Δprice? expression(Deltaprice)çalışmıyor, işe yaramıyorexpression(Delta price)
— jf328

2
Teşekkürler. Ama bu tam olarak nasıl? xlab(expression(Delta)price)hata veriyor
— jf328

3
ifade (Delta * fiyat)
— kennyB

Yunan formunu (Latin formunun aksine) Upsilon almanın bir yolu var mı? Bkz. En.wikipedia.org/wiki/Upsilon Latince Y ile Yazışmalar ( en.wikipedia.org/wiki/Upsilon#/media/… ' deki üçüncü karakter gibi bir şey istiyorum )
— Adrian

6
ifade (Delta * "fiyat") çalışır. Sözdizimini sevmeyin.
— 39'da daknowles

16

Yapmak istediğiniz şeyi yapmak için latex2exppakete ihtiyacınız yok. Aşağıdaki kod hile yapacaktı.

ggplot(smr, aes(Fuel.Rate, Eng.Speed.Ave., color=Eng.Speed.Max.)) + 
  geom_point() + 
  labs(title=expression("Fuel Efficiency"~(alpha*Omega)), 
color=expression(alpha*Omega), x=expression(Delta~price))

görüntü açıklamasını buraya girin

Ayrıca, bazı yorumlar (bu noktadan itibaren cevaplanmamış) bir Yunan harfinden sonra yıldız işareti (*) koyulmasını istedi. expression(alpha~"*")çalışır, bu yüzden denemenizi öneririm.

Edinme hakkında daha fazla yorum soruldu Δ Priceve bunu başarmanın en basit yolunu buluyorum expression(Delta~price)). Yunanca harfinden önce bir şey eklemeniz gerekirse, bunu da yapabilirsiniz: expression(Indicative~Delta~price)bu size:

görüntü açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.