SORU
13 AĞUSTOS 2010, Cuma


model etiketleri değiştirmek için Nasıl?ggplot:

Ggplot aşağıdaki komutu kullandık:

ggplot(survey,aes(x=age)) stat_bin(aes(n=nrow(h3),y=..count../n), binwidth=10)
   scale_y_continuous(formatter = "percent", breaks=c(0, 0.1, 0.2)) 
    facet_grid(hospital ~ .) 
    opts(panel.background = theme_blank()) 

üretmek için

alt text

Değişiklik yapmak istiyorummodeletiketler, ancak, bir şey daha kısa (Hosp 1, 2 Hosp...) çünkü onlar çok uzun şimdi ve bak sıkışık (artan yükseklik grafiği gibi bir şansımız yok, değil mi çok fazla yer kaplıyor belge). facet_grid yardım sayfası ancak bu şekil de nasıl dışarı baktım.

Herhangi bir tavsiye için şimdiden teşekkür ederiz.

CEVAP
24 AĞUSTOS 2012, Cuma


Burada veri düzenleme önler daha iyi bir çözüm:

Arsa seviyeleri control, test1, test2, Daha sonra bir liste oluşturmak bu değerlere göre ismi olan dataframe, group Bölümü tarafından küt olduğunu söylüyorlar

hospital_names <- list(
  'Hospital#1'="Some Hospital",
  'Hospital#2'="Another Hospital",
  'Hospital#3'="Hospital Number 3",
  'Hospital#4'="The Other Hospital"
)

Daha sonra bir fonksiyon ve facet_grid aramanız içine itin: . Etiket makinesi oluşturma

hospital_labeller <- function(variable,value){
  return(hospital_names[value])
}

ggplot(survey,aes(x=age))   stat_bin(aes(n=nrow(h3),y=..count../n), binwidth=10)
   facet_grid(hospital ~ ., labeller=hospital_labeller)
 ...

Bu hospital_names listesi dizin listesi değerleri (doğru isim) dönen veri çerçevesi seviyeleri kullanır.


Lütfen bu sadece tek bir yüzeylerinin değişken varsa çalıştığını unutmayın. Eğer iki yönü varsa, o zaman Etiket makinesi işlevi her yönüyle farklı bir isim vektör dönmek gerekiyor. Gibi bir şey ile bunu yapabilirsiniz :

plot_labeller <- function(variable,value){
  if (variable=='facet1') {
    return(facet1_names[value])
  } else {
    return(facet2_names[value])
  }
}

facet1_names facet2_names önceden tanımlanmış listeler model adları, dizin adları ile endeksli olduğu ('Hostpital#1', vb.).


Düzenleme:Yukarıdaki yöntem Etiket makinesi bilmiyor eğer değişken/değer kombinasyonu başarılı olursa başarısız olur. Bir fail-safe bu gibi bilinmeyen değişkenler için ekleyebilirsiniz:

plot_labeller <- function(variable,value){
  if (variable=='facet1') {
    return(facet1_names[value])
  } else if (variable=='facet2') {
    return(facet2_names[value])
  } else {
    return(as.character(value))
  }
}

Cevap how to change strip.text labels in ggplot with facet and margin=TRUE dan uyarlanmış


düzenleme:UYARIbu yöntemle bir model kullanıyorsanızkaraktersütun, etiketler yanlış yapıyor olabilir. this bug report bkz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alex maybury

    alex maybury

    20 Aralık 2007
  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012
  • kimaliz

    kimaliz

    18 Temmuz 2006