2017-09-26 2 views
2

Ich erstellte eine Funktion, um einige Daten pro Stadt in einem Liniendiagramm zu plotten. Ich möchte, dass der Benutzer die Beschriftung jeder Stadt in der Legende ändern kann.R ggplot2 gab Akzent in der Legende

Ein vereinfachtes Beispiel:

example_plot <- function(plot_labs = c("Anvers", "Liège")){ 

graphics.off() 

input <- data.table(x_axis = c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5), 
       y_axis = c(5, 6, 4, 2, 8, 9, 3, 1, 7, 5), 
       City = c("Anvers", "Anvers", "Anvers", "Anvers", "Anvers", 
         "Liege", "Liege", "Liege", "Liege", "Liege")) 

ggplot(data = input, aes(x = x_axis, y = y_axis, group = City, lty = City)) + 
geom_line() + scale_linetype_manual(labels = plot_labs, breaks = c("Anvers", 
"Liege"), values = 1:2) 
} 

Mein Problem:

Wenn ich die Funktion als "example_plot.R" speichern und dann ohne Argument, der Akzent in „Liège in der Eingabeaufforderung aufrufen "nicht richtig angezeigt:

example_plot() 

enter image description here

Wenn ich die Funktion mit den plot_labs Argument nennen, es richtig angezeigt wird:

example_plot(plot_labs = c("Anvers", "Liège")) 

enter image description here

Was finde ich noch seltsamer ist, dass wenn ich copy-paste den Code der Funktion in der Eingabeaufforderung (anstelle von 'source (example_plot.R ")'), dann funktioniert alles gut.

Eine Idee, warum es sich anders verhält, wenn die Funktion gespeichert wird?

+0

das hat wahrscheinlich damit zu tun, wie die Datei gespeichert wird, als utf8 oder ascii –

Antwort

2

Sie speichern Ihre Quelldatei wahrscheinlich in einer Codierung wie UTF-8 und öffnen sie dann erneut, oder geben Sie sie an, vorausgesetzt, sie befindet sich in Latin-1.

Wenn Sie RStudio verwenden, überprüfen Sie die Menüpunkte Datei/Speichern mit Codierung und File/wieder öffnen mit Codierung und die Zeichenkodierungen Spiel gewährleisten.

+0

Großartig! Vielen Dank. source ("example_plot.R", encoding = "utf-8") hat funktioniert. –