Ich habe ein ggplo Balkendiagramm wie dieseggplot2 Balkendiagramm tick Position und benutzerdefinierte Legende Ausgabe
erstellt von
library(lubridate)
library(ggplot2)
library(grid)
library(scales)
### Set up dummy data.
dayVec <- seq(ymd('2016-01-01'), ymd('2016-01-10'), by = '1 day')
dayCount <- length(dayVec)
dayValVec1 <- c(0,-0.25,0.15,0.3,0.4,0.10,0.17,0.22,0.50,0.89)
dayValVec2 <- c(0.15,0.2,-0.17,0.6,0.16,0.41,0.55,0.80,0.90,1.00)
dayValVec3 <- dayValVec2
dayDF <- data.frame(Date = rep(dayVec, 3),
DataType = factor(c(rep('A', dayCount), rep('B', dayCount), rep('C', dayCount))),
Value = c(dayValVec1, dayValVec2, dayValVec3))
p <- ggplot(dayDF,aes(Date, Value, colour = DataType)) +
theme_bw() +
ggtitle("Chart Title \n") +
scale_color_manual("",values = c("#033563", "#E1E2D2"),labels = c("xxx ", "yyy ")) +
geom_rect(aes(xmin = ymd(min(dayDF$Date)),
xmax = ymd('2016-01-06'),
ymin = -Inf,
ymax = Inf
), fill = "#E1E2D2", alpha = 0.1, colour = "#E1E2D2") +
geom_bar(stat = "identity", fill = "#033563", colour = "#033563") +
geom_hline(yintercept = 0, size = 1) +
scale_x_datetime(expand = c(0,0), labels = date_format('%b-%d'), breaks = date_breaks('1 day')) +
scale_y_continuous(expand = c(0,0), labels = percent, limits = c(min(dayDF$Value)*1.2, max(dayDF$Value)*1.2)) +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.grid.minor = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_line(size = 0.5, colour = "black"),
axis.line = element_line(size = 1),
axis.ticks = element_line(size = 1),
axis.text = element_text(size = 20, colour = "#033563"),
axis.title.x = element_text(hjust = 2),
plot.title = element_text(size = 40, face = "bold", colour = "#033563"),
legend.position = 'bottom',
legend.text = element_text(colour = "#033563", size = 20),
legend.key = element_blank(),
panel.border = element_rect(colour = "black", fill = NA, size = 1.5)
)
p
ich Probleme haben jetzt, zunächst möchte ich die haben goem_rect, um bei 0 zu beginnen, nicht zentriert auf dem ersten Balken, scheint das Problem hier die Datum x-Achse zu sein. Und zweitens würde Ich mag eine Legende haben, wie diese
am unteren Rand des Diagramms. Ich habe versucht, eine Dummy-Datenreihe zu erstellen, um zwei Legendeneinträge zu erhalten, aber es zeigt nicht einmal die Legende. Ich würde es vorziehen, wenn die Legende manipuliert werden könnte, ohne mit den Daten zu verkehren. Der 'yyy'-Legendeneintrag sollte angeben, was die schattierten Bereiche darstellen. Vielen Dank im Voraus, ich bin ein ziemlich Neuling zu ggplot2. Hier
Ich bekomme diese Fehlermeldung, wenn ich den Code ausführen 'Fehler: Ungültige Eingabe: date_trans arbeitet mit Objekten der Klasse nur Datum' – Dambo
können Sie es erneut versuchen, ich habe scale_x_date in scale_x_datetime geändert. Es funktioniert auf meinem Ende, aber ich weiß, dass es Probleme auf meinem Mac verursacht – ThatQuantDude
leider verschiebt dies nur alles nach rechts, noch bleibt der weiße vertikale Streifen – ThatQuantDude