Javascript amcharts获取鼠标的实际X值(日期)
我遵循了教程: 但是我没有得到正确的值。 代码如下:Javascript amcharts获取鼠标的实际X值(日期),javascript,html,amcharts,Javascript,Html,Amcharts,我遵循了教程: 但是我没有得到正确的值。 代码如下: <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Sensor Diagramms</title> <script src="amcharts/amcharts.js" type="text/javascript"></script> <script src="a
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Sensor Diagramms</title>
<script src="amcharts/amcharts.js" type="text/javascript"></script>
<script src="amcharts/serial.js" type="text/javascript"></script>
<script src="amcharts/themes/black.js" type="text/javascript"></script>
<!-- amCharts javascript code -->
<script type="text/javascript">
var valueAxis;
var chart;
var chartData = [];
var chartCursor;
var date;
loadCSV("MagnetField.txt");
AmCharts.ready(function(){
// SERIAL CHART
chart = new AmCharts.AmSerialChart();
chart.type = "serial";
chart.pathToImages = "amcharts/images/";
chart.dataProvider = chartData;
chart.categoryField = "date";
chart.dataDateFormat = "DD-MM-YYYY HH:NN:SS.QQQ";
// AXES
// category
var categoryAxis = chart.categoryAxis;
categoryAxis.minPeriod = "fff";
categoryAxis.parseDates = true;
// CURSOR
chartCursor = new AmCharts.ChartCursor();
chartCursor.categoryBalloonDateFormat= "HH:NN:SS.QQQ";
chartCursor.valueLineEnabled = true;
chartCursor.bulletsEnabled = true;
chartCursor.bulletSize = 2;
chartCursor.oneBalloonOnly = true;
chartCursor.addListener("moved", handleMove);
chart.addChartCursor(chartCursor);
// SCROLLBAR
var chartScrollbar = new AmCharts.ChartScrollbar();
chartScrollbar.usePeriod = "fff";
chartScrollbar.autoGridCount = true;
chartScrollbar.color = "#000000";
chart.addChartScrollbar(chartScrollbar);
// GRAPHS
var graph = new AmCharts.AmGraph();
graph.bullet = "round";
graph.title = "x-Axis";
graph.xField = "date";
graph.valueField = "xaxis";
graph.hideBulletsCount = 50;
graph.balloonText = "[[value]] uT";
graph.lineColor = "#b5030d";
chart.addGraph(graph);
var graph2 = new AmCharts.AmGraph();
graph2.bullet = "square";
graph2.title = "y-Axis";
graph2.xField = "date";
graph2.valueField = "xaxis";
graph2.hideBulletsCount = 50;
graph2.balloonText = "[[value]] uT";
graph2.lineColor = "#0352b5";
chart.addGraph(graph2);
var graph3 = new AmCharts.AmGraph();
graph3.bullet = "diamond";
graph3.title = "z-Axis";
graph3.xField = "date";
graph3.valueField = "zaxis";
graph3.hideBulletsCount = 50;
graph3.balloonText = "[[value]] uT";
graph3.lineColor = "#12B500";
chart.addGraph(graph3);
// value Axes
valueAxis = new AmCharts.ValueAxis();
valueAxis.title = "Magnetic Field"
valueAxis.unit = "uT";
chart.addValueAxis(valueAxis);
// Legend
var legend = new AmCharts.AmLegend();
legend.useGraphSettings = true;
legend.align = "center";
legend.valueText = "[[open]]";
chart.addLegend(legend);
chart.titles = [{"id": "Title-1", "size": 15, "text": "Magnetic Sensor"}];
chart.write("chartdiv");
})
function handleMove(event){
var xValue = AmCharts.roundTo(valueAxis.coordinateToValue(event.x - valueAxis.axisX), 2);
//var yValue = AmCharts.formatDate(valueAxis.axisX, "DD/MM/YYYY");
var yValue = event.x - valueAxis.axisX;
console.log("handleMove");
document.getElementById('values').innerHTML = "x:" + xValue + " "+ yValue;
}
function loadCSV(file) {
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari
var request = new XMLHttpRequest();
} else {
// code for IE6, IE5
var request = new ActiveXObject('Microsoft.XMLHTTP');
}
// load
request.open('GET', file, false);
request.send();
parseCSV(request.responseText);
}
function parseCSV(data) {
//replace UNIX new lines
data = data.replace (/\r\n/g, "\n");
//replace MAC new lines
data = data.replace (/\r/g, "\n");
//split into rows
var rows = data.split("\n");
// loop through all rows
for (var i = 0; i < rows.length; i++) {
// this line helps to skip empty rows
if (rows[i]) {
// our columns are separated by comma
var column = rows[i].split(",");
// column is array now
// first item is date
date = timeConverter(column[0]);
// second item is value of the second column
var value = column[1].substring(2, column[1].length);
var value2 = column[2].substring(2, column[2].length);
var value3 = column[3].substring(2, column[3].length);
// create object which contains all these items:
var dataObject = {
date: date,
xaxis: value,
yaxis: value2,
zaxis: value3,
Balloon: "Time: "+ date.substring(11,23)
};
// add object to chartData array
chartData.push(dataObject);
}
}
return chartData
}
function setPanSelect() {
if (document.getElementById("rb1").checked) {
chartCursor.pan = false;
chartCursor.zoomable = true;
} else {
chartCursor.pan = true;
}
chart.validateNow();
}
function timeConverter(UNIX_timestamp){
var test = UNIX_timestamp;
var a = new Date(test.substring(0,10)*1000);
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var year = a.getFullYear();
var month = (a.getMonth() + 1) < 10 ? '0' + (a.getMonth() + 1) : (a.getMonth() + 1) ;
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes();
var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
var msec = test.substring(10,13);
var time = date + "-" + month + "-" + year + " " + hour + ":" + min + ":" + sec + "." + msec;
return time;
}
</script>
</head>
<body>
<div align="center" id="chartdiv" style="margin:auto; width: 80%; height: 500px; background-color: #FFFFFF;" ></div>
<br>
<br>
<div id="values"></div>
</body>
</html>
传感器示意图
var价值轴;
var图;
var chartData=[];
var-chartCursor;
风险值日期;
loadCSV(“MagnetField.txt”);
AmCharts.ready(函数(){
//序列图
chart=新的AmCharts.AmSerialChart();
chart.type=“串行”;
chart.pathToImages=“amcharts/images/”;
chart.dataProvider=chartData;
chart.categoryField=“日期”;
chart.dataDateFormat=“DD-MM-YYYY HH:NN:SS.QQQ”;
//斧头
//类别
var categoryAxis=chart.categoryAxis;
categoryAxis.minPeriod=“fff”;
categoryAxis.parseDates=true;
//光标
chartCursor=新建AmCharts.chartCursor();
chartCursor.categoryBalloonDateFormat=“HH:NN:SS.QQQ”;
chartCursor.valueLineEnabled=true;
chartCursor.bulletsEnabled=true;
chartCursor.bulletSize=2;
chartCursor.oneballoodonly=true;
chartCursor.addListener(“移动”,handleMove);
chart.addChartCursor(chartCursor);
//滚动条
var chartScrollbar=新的AmCharts.chartScrollbar();
chartScrollbar.usePeriod=“fff”;
chartScrollbar.autogidcount=true;
chartScrollbar.color=“#000000”;
chart.addChartScrollbar(chartScrollbar);
//图表
var-graph=新的AmCharts.AmGraph();
graph.bullet=“圆形”;
graph.title=“x轴”;
graph.xField=“日期”;
graph.valueField=“xaxis”;
graph.hidebulletscont=50;
graph.ballootText=“[[value]]uT”;
graph.lineColor=“#b5030d”;
图表。添加图表(图形);
var graph2=新的AmCharts.AmGraph();
图2.bullet=“正方形”;
图2.title=“y轴”;
graph2.xField=“日期”;
graph2.valueField=“xaxis”;
图2.hidebulletscont=50;
graph2.ballootText=“[[value]]uT”;
graph2.lineColor=“#0352b5”;
图.添加图(图2);
var graph3=新的AmCharts.AmGraph();
图3.bullet=“菱形”;
图3.title=“z轴”;
graph3.xField=“日期”;
graph3.valueField=“zaxis”;
图3.hidebulletscont=50;
graph3.ballootText=“[[value]]uT”;
graph3.lineColor=“#12B500”;
图.添加图(图3);
//价值轴
valueAxis=新的AmCharts.valueAxis();
valueAxis.title=“磁场”
valueAxis.unit=“uT”;
图表.添加valueAxis(valueAxis);
//传奇
var legend=new AmCharts.AmLegend();
legend.useGraphSettings=true;
legend.align=“中心”;
legend.valueText=“[[open]]”;
图表。添加图例(图例);
chart.titles=[{“id”:“Title-1”,“size”:15,“text”:“Magnetic Sensor”}];
chart.write(“chartdiv”);
})
功能手柄移动(事件){
var xValue=AmCharts.roundTo(valueAxis.coordinateToValue(event.x-valueAxis.axix),2);
//var yValue=AmCharts.formatDate(valueAxis.axix,“DD/MM/YYYY”);
var yValue=event.x—valueAxis.axix;
控制台日志(“handleMove”);
document.getElementById('values').innerHTML=“x:”+xValue+“”+yValue;
}
函数loadCSV(文件){
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari
var request=new XMLHttpRequest();
}否则{
//IE6、IE5的代码
var request=newactivexobject('Microsoft.XMLHTTP');
}
//装载
打开('GET',file,false);
request.send();
parseCSV(request.responseText);
}
函数parseCSV(数据){
//更换UNIX新线路
data=data.replace(/\r\n/g,“\n”);
//更换新线路
data=data.replace(/\r/g,“\n”);
//分成几行
var rows=data.split(“\n”);
//循环遍历所有行
对于(变量i=0;i$("#chartdiv").mousemove(function () {
var categoryIndex = chart.categoryAxis.xToIndex(event.x));
});