Javascript 是否有办法使用highcharts更改系列显示值
我是stackoverflow、django和highcharts的新手,因此给您带来不便,我深表歉意 因此,当我注意到一个小问题时,我正在用图表显示时间和日期。 当看图表时,一切看起来都像这样 但当我将鼠标悬停在图表上的某个点上时,它会显示不同的值。看起来像这样 我希望当聚焦在一个点上时,它会像在侧面一样显示为HH:MM:SS,而不是总的微秒数。我需要做什么改变才能实现它 这是图表的代码Javascript 是否有办法使用highcharts更改系列显示值,javascript,django,highcharts,Javascript,Django,Highcharts,我是stackoverflow、django和highcharts的新手,因此给您带来不便,我深表歉意 因此,当我注意到一个小问题时,我正在用图表显示时间和日期。 当看图表时,一切看起来都像这样 但当我将鼠标悬停在图表上的某个点上时,它会显示不同的值。看起来像这样 我希望当聚焦在一个点上时,它会像在侧面一样显示为HH:MM:SS,而不是总的微秒数。我需要做什么改变才能实现它 这是图表的代码 <script>
<script>
$(function () {
$('#container').highcharts({
chart:
{
type: 'line'
},
title:
{
text: 'Time worked by {{user_to_show}}'
},
xAxis:
{
categories: {{dates|safe}}
},
yAxis:
[{
title:
{
text: ''
},
gridLineWidth: 1,
type: 'datetime', //y-axis will be in milliseconds
dateTimeLabelFormats:
{ //force all formats to be hour:minute:second
second: '%H:%M:%S',
minute: '%H:%M:%S',
hour: '%H:%M:%S',
day: '%H:%M:%S',
week: '%H:%M:%S',
month: '%H:%M:%S',
year: '%H:%M:%S'
},
opposite: true
}],
plotOptions:
{
series:
{
dataLabels:
{
enabled: true,
formatter: function()
{
if( this.series.index == 0 )
{
return secondsTimeSpanToHMS(this.y/1000) ;
}
else
{
return this.y;
}
}
}
}
},
series:
[{
name: 'Time',
yAxis: 0,
data: {{time|safe}}
}]
});
});
function secondsTimeSpanToHMS(s) {
var h = Math.floor(s / 3600); //Get whole hours
s -= h * 3600;
var m = Math.floor(s / 60); //Get remaining minutes
s -= m * 60;
return h + ":" + (m < 10 ? '0' + m : m) + ":" + (s < 10 ? '0' + s : s); //zero padding on minutes and seconds
}
</script>
$(函数(){
$(“#容器”)。高图({
图表:
{
类型:“行”
},
标题:
{
文本:{{user_to_show}}的工作时间
},
xAxis:
{
类别:{dates | safe}}
},
亚克斯:
[{
标题:
{
文本:“”
},
网格线宽度:1,
类型:'datetime',//y轴将以毫秒为单位
日期时间标签格式:
{//强制所有格式为小时:分钟:秒
第二个:“%H:%M:%S”,
分钟:“%H:%M:%S”,
小时数:“%H:%M:%S”,
日期:“%H:%M:%S”,
周:“%H:%M:%S”,
月份:“%H:%M:%S”,
年份:'%H:%M:%S'
},
相反:对
}],
打印选项:
{
系列:
{
数据标签:
{
启用:对,
格式化程序:函数()
{
如果(this.series.index==0)
{
返回第二次激励计划(本年度/1000);
}
其他的
{
把这个还给我;
}
}
}
}
},
系列:
[{
名称:'时间',
雅克斯:0,
数据:{时间|安全}
}]
});
});
功能二次激励模式{
var h=Math.floor(s/3600);//整小时
s-=h*3600;
var m=Math.floor(s/60);//获取剩余的分钟数
s-=m*60;
返回h+“:”+(m<10?'0'+m:m)+“:”+(s<10?'0'+s:s);//分秒零填充
}
如果您想要更多的代码、数据或信息,请告诉我。
提前感谢所有回复的人。我找到了解决问题的方法。必须补充:
tooltip:
{
formatter: function ()
{
var text = this.x + ': ' + secondsTimeSpanToHMS(this.y/1000);
return text;
}
},
结果是:
(将此帖子标记为已回复,但stackoverflow在2天之前不会让我这么做)我不知道highcharts,但我很确定您在if/else处返回此帖子。y;if/else是将HH:MM:SS添加到所有点之上的部分,我对highcharts的用法知之甚少,以确定我是否可以解决那里的问题。