ich bin etwas zu kämpfen, die, glaube ich, sollteMehrere Intraday-Zeitreihe auf dem gleichen Chart
Bitte beachten Sie das folgende Beispiel in R. ziemlich straighforward sein:
library(dplyr)
library(tidyverse)
time = c('2013-01-03 22:04:21.549', '2013-01-03 22:04:22.349', '2013-01-03 22:04:23.559', '2013-01-03 22:04:25.559')
value1 = c(1,2,3,4)
value2 = c(400,500,444,210)
data <- data_frame(time, value1, value2)
data <-data %>% mutate(time = as.POSIXct(time))
> data
# A tibble: 4 × 3
time value1 value2
<dttm> <dbl> <dbl>
1 2013-01-03 22:04:21 1 400
2 2013-01-03 22:04:22 2 500
3 2013-01-03 22:04:23 3 444
4 2013-01-03 22:04:25 4 210
Mein Problem ist einfach:
Ich möchte plotten value1
AND value2
auf dem gleichen Diagramm mit zwei verschiedenen Y-Achse.
Wie Sie im Beispiel sehen können, unterscheiden sich die Einheiten zwischen den beiden Variablen stark, so dass die Verwendung nur einer Achse eine der Zeitreihen komprimiert.
Überraschenderweise hat es sich als sehr schwierig erwiesen, ein gut aussehendes Diagramm für dieses Problem zu bekommen. Ich bin verrückt (natürlich nicht wirklich sauer. Nur verwirrt;)).
In Python Pandas, könnte man einfach nutzen:
data.set_index('time', inplace = True)
data[['value1', 'value2']].plot(secondary_y = 'value2')
in Stata, könnte man einfach sagen:
twoway (line value1 time, sort) (line value2 time, sort)
In R, ich weiß nicht, wie es zu tun. Fehle ich hier etwas? Base R, ggplot2
, irgendein komisches Paket, jede Arbeitslösung mit anständigen Anpassungsoptionen wäre hier in Ordnung.
Hadley hat wiederholt gesagt (und auf dieser Seite, wenn Sie suchen), dass er denkt, dass eine doppelte y-Achsen sind irreführend, es sei denn, sie sind nur Conversions (wie Celcius und Fahrenheit). Verwenden Sie stattdessen eine Protokollskala oder Facetten, z. 'Bibliothek (ordentlich); daten%>% sammeln (var, val, -time)%>% ggplot (aes (zeit, val, farbe = var)) + geom_line() + scale_y_log10() ' – alistaire
@alistaire das ist kein duplikat, denn hier gibt es die datetime-Komponente der x-Achse, die sich von vielen Beispielen in SO unterscheidet. –
@alistaire auch, Dieses Argument gegen Doppelachse ist reiner Unsinn. Öffnen Sie ein beliebiges ökonometrisches Buch, das Zeitreihen enthält, und Sie sehen überall doppelte y-Achsen-Plots. Der Punkt, dass die duale y-Achse Menschen irreführt, ist absurd. Natürlich glaubt niemand, dass die Linie, die sich in einem Doppelachsen-Diagramm kreuzt, tatsächlich an diesem Punkt kreuzt. Es ist nur ein Artefakt der Grafik! Zweiachsiges Diagramm ist eine Co-Bewegung. Wie auch immer, sonst ist ggplot2 natürlich mein liebstes Tagespaket. Hier brauche ich nur etwas, das funktioniert ... –