o to rozwiązanie, które pozwala uniknąć edycji danych:
Wypowiedz Działka szlifowanych przez group
część swojego dataframe, który ma poziomy control, test1, test2
, a następnie utworzyć listę nazwany przez tych wartości:
hospital_names <- list(
'Hospital#1'="Some Hospital",
'Hospital#2'="Another Hospital",
'Hospital#3'="Hospital Number 3",
'Hospital#4'="The Other Hospital"
)
następnie utworzyć funkcję „etykietowania” i przesunąć do swojej facet_grid rozmowy:
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)
...
ta wykorzystuje poziomy ramki danych do indeksowania lista hospital_names, wracając wartości liście (poprawnych nazw).
Należy pamiętać, że działa to tylko wtedy, gdy masz tylko jedną zmienną faceting. Jeśli masz dwa aspekty, to funkcja etykietowania musi zwracać inny wektor nazw dla każdego aspektu. Można to zrobić z czymś takim:
plot_labeller <- function(variable,value){
if (variable=='facet1') {
return(facet1_names[value])
} else {
return(facet2_names[value])
}
}
Gdzie facet1_names
i facet2_names
są predefiniowane listy nazwisk indeksowanych przez nazwy indeksu aspekt („Hostpital # 1”, etc.).
Edit: Powyższa metoda nie powiedzie się, jeśli przechodzą kombinacji zmienna/wartość, że etykietująca nie wie. Możesz dodać bezawaryjnego nieznanych zmiennych tak:
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))
}
}
Odbierz adaptacją how to change strip.text labels in ggplot with facet and margin=TRUE
edit: UWAGA: jeśli używasz tej metody do aspektu przez kolumnę znak, możesz otrzymywać niepoprawne etykiety. Zobacz this bug report. poprawiono w najnowszych wersjach ggplot2.
Świetnie, działa dobrze; chociaż wolałbym rozwiązanie, które nie zmienia podstawowych danych, rozwiązał mój problem, więc mogłem poruszać się z moją pracą. Dziękuję Ci. – wishihadabettername
@wishihadabettername: Aby uniknąć zmiany danych podstawowych, możesz użyć: 'ggplot (transformacja (tęczówka, gatunek = c (" S "," Ve "," Vi ") [jako numeryczne (gatunek)]), aes (Petal.Length)) + stat_bin() + facet_grid (Gatunek ~.) ' –
powiązane ... jeśli chcesz, aby etykieta panelu była wyrażeniem bquote() (np.' Poziomy (x $ wymiary) <- c (bquote (Area ~~ (cm^2)), bquote (Length ~~ (cm))) ') nie pojawi się w wyrażeniu matematycznym. Jak pokazać wyrażenia jako etykiety aspektu? –