2 satır gösteren bir çizgi grafiğim var: biri değerlerle tarih aralığını temsil ediyor ve diğer satır önceki değerlerle (tarihler de) önceki değerdir.Birden çok sütun verisi ile google çizgi grafik araç ipuçları
Her satıra ilişkin araç ipuçlarındaki ilgili tarihi ve değeri göstermek istiyorum.
alet uçları aşağıdaki gibi görünecektir:
function drawChart(chartData, elemId, chartWidth, chartHeight, startDate, endDate) {
var chartToDraw = new google.visualization.DataTable();
chartToDraw.addColumn('date', 'Date');
chartToDraw.addColumn('number', 'Value');
chartToDraw.addColumn({
type: 'string',
role: 'tooltip',
properties: {
html: true
},
calc: function (dt, row) { //doesn't get called for some reason
var date = dt.getValue(row, 2);
var val = dt.getValue(row, 1);
return '<div>' + date + ' </br><b>value:</b>' + val + '</div>';
}
});
chartToDraw.addColumn('number', 'Previous value');
chartToDraw.addColumn({
type: 'string',
role: 'tooltip',
properties: {
html: true
},
calc: function (dt, row) { //doesn't get called for some reason
var date = dt.getValue(row, 4);
var val = dt.getValue(row, 3);
return '<div>' + date + ' </br><b>value:</b>' + val + '</div>';
}
});
if (chartData['dataPoints'] != undefined) {
var currentDataArr = [];
for (var point in chartData['dataPoints']) {
currentDataArr.push([
chartData['dataPoints'][point].date,
chartData['dataPoints'][point].value,
chartData['dataPoints'][point].date,
chartData['dataPoints'][point].prevValue,
chartData['dataPoints'][point].prevDate
]);
}
}
chartToDraw.addRows(currentDataArr);
var timeFormatter = new google.visualization.DateFormat({
pattern: "MMM dd"
});
timeFormatter.format(chartToDraw, 0);
timeFormatter.format(chartToDraw, 2);
timeFormatter.format(chartToDraw, 4);
var options = {
legend: 'none',
'width': chartWidth,
'height': chartHeight,
pointSize: 4,
colors: ['#0289cb', '#01af8a'],
tooltip: {
isHtml: true
},
chartArea: {
width: '80%'
},
hAxis: {
slantedText: true,
slantedTextAngle: 30,
viewWindow: {
min: startDate,
max: endDate
},
gridlines: {
count: -1,
units: {
days: {format: ['MMM dd']},
hours: {format: ['HH:mm', 'ha']}
}
},
minorGridlines: {
units: {
hours: {format: ['hh:mm:ss a', 'ha']},
minutes: {format: ['HH:mm a Z', ':mm']}
}
}
},
vAxis: {
viewWindow: {
min: 0
}
}
};
var chart = new google.visualization.LineChart(document.getElementById(elemId));
chart.draw(chartToDraw, options);
}
sorun tüm i araç-üzerinde Şu anda görmek şudur:
bu ben şu anda ne var ipuçları sadece doğru tarihler ve değeri kaçırıyorum. calc
işlevlerinin neden çağrılmadığından emin değilim, araç ipucu türünü string
olarak değiştirirseniz bir mismatch type
hatası alıyorum.
Google Chart HTML Tooltip displays html text
ama bu cevapları resamble için yaptığı tüm değişiklikleri başarısız oldu: İşte
ı şimdiye kadar baktım budur. Neyi yanlış yapıyorum?
Teşekkürler! Bu çok yardımcı olur, ben sadece 'prevDate' eksik, ben başka bir sütun olarak ekledi, '3,' 2 sonra ikinci eklendi ve 'var date = dt.getValue olarak değiştirildi satır, 3); ', ama bir hata alıyorum:' Verilen bir eksendeki tüm seriler aynı veri tipinde olmalı, nasıl çözeceğine dair bir fikriniz var mı? – FireBrand
evet, ikinci tarih bir şeyler atıyor. Verilere iki tarih eklerseniz, iki eksen kullanmalısınız '... önceki değeri kullanarak ikinci bir eksende önceki değeri çizmek ister misiniz? veya mevcut tarihin eksenindeki önceki değeri çizin ve sadece önceki tarihte araç ipucunda gösterilsin mi? ikincisi, önceki tabloyu veri tablosuna eklerseniz, veri görünümünde kendi sütununu içermezsiniz, sadece araç ipucuna başvurunuz ... (bkz. düzenleme) – WhiteHat
Geçerli tarihin ekseni üzerinde önceki değeri çizmek ve sadece önceki gösterimi göstermem gerekir. araç ipucu tarihi, bu yüzden yaptığınız gibi sütunu ekledim, yaptığınız gibi veri ekledim ve veri görünümünden '3' yi kaldırdım ve sadece ipucundaki referansı kullandım ama daha önce olduğu gibi aynı hatayı aldım – FireBrand