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
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
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.
Nasıl gıt tamamlama belirtilen değişti...
Nasıl bir köprü jQuery kullanarak href...
Nasıl bir iOS app adını değiştirmek iç...
Nasıl iOS 7 Status Bar metin rengini d...
Nasıl ilerleme iletişim ve arka plan i...