Ich versuche, ein Echtzeit-Zeitreihendiagramm mit ZingChart zu erstellen. Aber ich will es akkumulativ, in dem alle Punkte akkumulieren, wenn Daten anhängen. Also verwende ich "appendseriesvalues" in jeder Ajax-Abfrage, um Daten anzuhängen und Daten als JSON-Objekt als (Schlüssel, Wert) -Paar zu übergeben.In Zeitreihen ZingChart, während appendseriesvalues in Echtzeit verwenden, verursacht xValue Problem
Mein Code ist wie folgt:
var chartData = {
"show-progress":false,
"gui":{
"behaviors":[
{
"id":"ZoomIn",
"enabled":"all"
},
{
"id":"ZoomOut",
"enabled":"all"
},
{
"id":"ShowAll",
"enabled":"all"
}
]
},
"type":"line",
// "utc":true, /* Force UTC time. */
// "timezone": -5,
"plotarea": {
"adjust-layout":true /* For automatic margin adjustment. */
},
"scale-x":{
"values": [],
"label":{ /* Add a scale title with a label object. */
"text":"Above is an example of a time-series scale",
},
"min-value":1420070400000, /* Unix timestamp for Jan 1, 2015. */
"step":"second",
"transform":{ /* Converts your Unix timestamp to a human readable format. */
"type":"date", /* Set your transform type to "date". */
"all":"%h:%i:%s" /* Specify your date/time format, using tokens. */
},
"line-color":"none",
"tick":{
"visible":false
},
"zooming":1,
"item":{
"font-color":"#000",
"visible":true
},
// "max-labels":10000,
"itemsOverlap": true
},
"scale-y":{
"zooming":1,
"items-overlap": true
},
"series":[
{
"values":[]
}
],
};
window.onload = function() {
zingchart.render({
id: "chartDiv",
data: chartData,
height: 600,
width: "100%"
});
};
setInterval(flashText, 1000);
function flashText() {
$.ajax({
type: "POST",
dataType: "json",
headers: {
Accept: "application/json",
"Access-Control-Allow-Origin": "*"
},
url: "TestServlet2",
success:function(data) {
$.each(data, function(key, value) {
zingchart.exec('chartDiv', 'appendseriesvalues', {
values: [[key,value]],
})
});
},
});
}
Wenn ich diesen Code zu erstellen verwenden, es nimmt Schlüssel und Wert als 2 Werte in series.I es als (Schlüssel, Wert) dargestellt werden soll. Bitte schlage mir vor, was ich falsch mache. Danke im Voraus!
Tnxs alot @nardecky für die Antwort. Ich habe meinen Code entsprechend geändert und sowohl xValue als auch yValue zeichnen jetzt korrekt. Aber auf der X-Achse, wenn sich Daten akkumulieren, werden die X-Achsenbeschriftungen nicht für alle Datenpunkte angezeigt, sondern nur die erste und zuletzt aktualisierte Datenpunkt-X-Achsenbeschriftung. Irgendein Vorschlag?? :-D –
@PradnyaP Ich glaube, das liegt daran, dass Sie den minValue definiert haben und in Ihr scaleX: {} Objekt treten. Entfernen Sie diese beiden Zeilen und lassen Sie mich wissen, ob das Ihre beabsichtigte Funktionalität ist. – nardecky
Hallo @nardecky, wenn ich Kommentarschritt, nach der Datenakkumulation meine X-Achsen-Etiketten überlappt sich gegenseitig, die ich möchte, dass es automatisch anpassen. Zum Beispiel, wenn anfänglich zwei benachbarte Markierungen sich um 1 Sekunde unterscheiden, dann sollte die Differenz nach einer gewissen Zeit 5 Sekunden oder so betragen. was soll ich machen? –