2016-05-05 15 views
2

Es sieht einfach aus, aber ich kämpfe mit ihm. Im Grunde versuche ich, simulierte Streaming-Daten zu visualisieren (plotten), die alle zwei Sekunden kommen, d. H. Für die Darstellung, dass sie in Echtzeit kontinuierlich ist.Streaming Datenvisualisierung in R

Ich habe Microsoft Azure gesehen (aber ich habe kein teures Abonnement). Ich habe auch das Animationspaket gesehen, aber es muss alle Daten einlesen, bevor das Display gerendert wird. Gibt es eine Möglichkeit, dies in R (oder vielleicht Python) zu erreichen? Diese ist das, was ich bisher in R getan:

#simulate some sensor data 
time <- seq(1,200,2) 
sensor <- runif(100,1,100) 
timedf <- data.frame(cbind(time,sensor)) 
timedf$time <- as.POSIXct(timedf$time,origin = "2016-05-05") 

plot(timedf$time,timedf$sensor,type = "l") 

#I want to visualize or plot the data continously every 2 seconds 
#sleep function 
mysleep <- function(x) 
{ 
    p1 <- proc.time() 
    Sys.sleep(x) 
    proc.time() - p1 
} 

for(i in 1:nrow(timedf)){ 
    mysleep(2) 
    print(timedf[i,]) 
    plot(timedf[i,]$time,timedf[i,]$sensor,type = "l") 
    par(new=FALSE) 
}[![some sensor data][1]][1] 
+0

Werfen Sie einen Blick auf https://plot.ly/streaming/ –

+1

Dank Steven. Ich habe das getan, aber es braucht einen, um sich mit ihrem Cluster zu verbinden und ihnen sind einige Preise beigefügt. Ich brauche etwas, das lokal auf einer Maschine ausgeführt werden kann und für eine Demonstration um einen Browser gewickelt wird. Gibt es einen Weg, dies zu erreichen? –

+0

Sie können es kostenlos machen, wenn es Ihnen nichts ausmacht, dass Ihre Daten öffentlich verfügbar sind. –

Antwort

0

Hier ist eine Demonstration mit nodejs:

#clone the nodejs plotly github directory 
git clone https://github.com/plotly/plotly-nodejs.git 

bearbeiten die examples/config.json Datei Ihre API credentials verwenden und dann einfach eine der Demo laufen zur Verfügung gestellt (in In diesem Beispiel wird; signal-stream.js)

node signal-stream.js

, die folgende Ausgabe ein JSON-String in Form von:

{ streamstatus: 'All Streams Go!', 
    url: 'https://plot.ly/~voxnonecho/194', 
    message: '', 
    warning: '', 
    filename: 'streamSimpleSensor', 
    error: '' } 

Dann folgen Sie einfach die URL zur Verfügung gestellt:

enter image description here

+0

Steven, ich habe es auf Ubuntu gemacht, aber wenn ich diesen Befehl "node signal-stream.js" ausführe, erhalte ich keine Antwort, selbst wenn ich in das erforderliche Verzeichnis gewechselt habe. Gibt es etwas, das fehlt? –

+0

Was ist Ihre Ausgabe? Haben Sie 'nodejs' richtig installiert? –

+1

Danke Steven. Ich löse das Problem, indem ich plotly und random-signal lokal (ohne das Argument -g) in dasselbe Beispielverzeichnis installiere. –