Mehrzeilige Beschriftungen für die x-Achse in ggplot2
Ist es möglich, mehrere Linien von Achsenbeschriftungen in R-charts?
Ich würde gerne zwei Leitungen und Etiketten für die x-Achse, wie es in dem link unten –
http://www.rita.dot.gov/bts/airfares/national/chart
In meinem code, ich habe all die Jahr-Quartal-Kombinationen als x-Achsen-Beschriftungen. Aber das macht die x-Achsen-Beschriftungen sehen sehr unübersichtlich.
Gibt es eine Möglichkeit, ich könnte die x-Achsen-Beschriftungen-Reiniger und beschreibenden, vorzugsweise, wie in der Grafik in dem link oben?
Hier ist der code, den ich verwende –
national.fare <- read.csv("http://www.rita.dot.gov/bts/airfares/national/csv",
header = TRUE)[ , 1:4]
names(national.fare) <- c("Year", "Quarter", "US_Average_Current", "US_Average_Inflation-Adjusted")
# Convert Year and Quarter as characters
national.fare$Year <- as.character(national.fare$Year)
national.fare$Quarter <- as.character(national.fare$Quarter)
# Convert to Long-version
national.fare.long <- melt(national.fare, measure.vars = c("US_Average_Current", "US_Average_Inflation-Adjusted"))
# Combine Year and Quarter for Graph
national.fare.long$Year_Quarter <- as.character(paste(national.fare.long$Year, "Q", national.fare.long$Quarter, sep = ""))
# Chart: National Average Domestic Fare Current and Inflation-Adjusted
p <- ggplot(national.fare.long, aes(x = Year_Quarter, y = value, group = variable))
p + geom_line(aes(color = variable), size = 1.5) +
scale_color_manual(values = c("navy", "red")) +
ylim(250, 500) +
ggtitle("National Average Domestic Fare 1995 - 2013") +
xlab("Year-Quarter") +
ylab("Average Domestic Fare") +
theme(legend.position = "top",
legend.key = element_rect(fill = "transparent", color = NA),
legend.title = element_blank(),
axis.title = element_text(family = "sans", color = "grey50", face = "bold"),
axis.line.x = element_line(color = "grey"),
axis.text.y = element_text(family = "sans"),
axis.text.x = element_text(family = "sans", face = "plain", hjust = 0, vjust = 1, angle = 285),
axis.ticks.x = element_line(),
panel.grid.major.y = element_line(color = "grey", size = 0.5, linetype = "dashed"),
panel.background = element_rect(fill = "transparent", color = NA),
plot.background = element_rect(fill = "transparent", color = NA),
plot.title = element_text(family = "sans", size = 18, face = "bold"))
- wenn Sie
"\n"
als separator in Ihre Etiketten, Sie sollte in zwei Zeilen - Eine andere Möglichkeit wäre, eine Tabelle erstellen, die an der Unterseite der Diagramm, die so viele Zeilen, wie Sie wollen. Zu tun, so Folgen Sie diesem Beispiel: learnr.wordpress.com/2009/04/29/...
- wenn eine der Antworten, die dir geholfen, es ist gut in form, es zu akzeptieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Lösung ist, erstellen Sie eine Spalte, die speziell für die Etiketten: ich habe nur jedes vierte Etikett. Beachten Sie auch, dass habe ich Hinzugefügt, "\n" setzen, um das label auf zwei verschiedenen Linien. Schließlich verwenden Sie
scale_x_discrete(labels=national.fare.long$Year_Quarter_lab)
hinzufügen Ihrer benutzerdefinierten Etiketten.Wenn Sie konvertieren die Viertel in Daten, können Sie leicht ändern Sie die Skalierung der Achse, um was auch immer Sie denken, sieht gut aus.
Ändern Vierteln in Datteln (ich sage Q1 = 1. Januar, ändern, wie Sie wünschen):
Wählen Sie dann Ihre Achse Granularität:
Und nun machen einige kleine änderungen an Ihrem Grundstück: