Ich habe eine Funktion erstellt, die ggvis verwendet, um einige der Daten, die wir regelmäßig überprüfen, grafisch darzustellen. In diesem Fall wird die letzte Gruppe "Overall" überschrieben, um sie als schwarze Linie mit einer Breite von 3 anstelle des Standards anzuzeigen. Leider werden die Schritte, die ich unternommen habe, um den Standard zu überschreiben, nicht in der Legende angezeigt. Ich bin mir nicht sicher, was ich tun soll, damit das funktioniert. Ich habe versucht, die add_legend spezifisch aufzurufen, aber das hat nicht funktioniert.Wie kann ich die ggvis-Legende mit der Grafik vergleichen?
Der verwendete Code ist dies (auch mit einigen Zufallsdaten) zu erzeugen:
CAL_DATE = seq(as.Date("10/1/2015", format = "%m/%d/%Y"),
as.Date("3/31/2016", format = "%m/%d/%Y"), by = 1)
CAL_DATE = as.POSIXct(CAL_DATE)
a = data.frame(cbind(ma_AHT = round(rweibull(length(CAL_DATE),
5, 500),0), CT_DS = rep("A",length(CAL_DATE))))
b = data.frame(cbind(ma_AHT = round(rweibull(length(CAL_DATE),
4, 540),0), CT_DS = rep("B", length(CAL_DATE))))
Overall = data.frame(cbind(ma_AHT = round(rweibull(length(CAL_DATE),
10, 475),0), CT_DS = rep("Overall", length(CAL_DATE))))
a$CAL_DATE = CAL_DATE
b$CAL_DATE = CAL_DATE
Overall$CAL_DATE = CAL_DATE
data = rbind(a, b, Overall)
plot_ma = function(x){
x %>%
group_by(CT_DS) %>%
ggvis(~CAL_DATE, ~ma_AHT, stroke = ~CT_DS) %>%
layer_lines() %>%
filter(CT_DS == "Overall") %>%
layer_lines(stroke := "black", strokeWidth := 3) %>%
set_options(renderer = "canvas") %>%
add_legend("stroke", title = "~ CT") %>%
add_axis("x", title = "Date", title_offset = 60,
properties = axis_props(
labels = list(
angle = -50,
align = "right",
baseline = "middle"
))) %>%
add_axis("y", title = "M.A. AHT (sec)")
}
plot_ma(data)
, die wie unten etwas erzeugen sollen. Meine einzige Sorge ist, wie die Legende "Overall" auch als Schwarz erscheinen lässt.
Können Sie einen kleinen Beispiel-Datensatz hinzufügen? – aosmith
Wenn 'Overall' immer zuletzt ist, denke ich, dass Sie einfach die Farben in' scale_nominal' über 'range' definieren können. In Ihrem einfachen Beispiel wäre es etwas wie "scale_nominal (" stroke ", range = c (" blau "," orange "," schwarz ")).Für weitere Gruppen können Sie einen Vektor mit Farben erstellen oder Farben aus einem Muster für die Anzahl der Gruppen ziehen, die Sie haben, und dann "schwarz" an das Ende anhängen. – aosmith
Die Anzahl der Gruppen kann zwischen den Datensätzen stark variieren. Könnten Sie mir mehr Einblick geben, wie man Farben aus der Probe zieht? Ich schaute in ein ggvis-Objekt, um herauszufinden, wo es sein könnte, hatte aber keinen Erfolg. –