jquery - highchart 散点图,y 轴为 24 小时时间,x 轴为交易日期
问题描述
我有一些交易数据,我想创建带有 24 小时(交易发生的时间)的 y 轴和解释交易发生的日期的 x 轴的图形图表报告。
我使用 jquery highchart scatter,我想要类似这个 例子的东西。这是我使用一些示例数据时的结果。
但是当我插入太多数据时,它会变得像这个 奇怪的结果一样奇怪。
这是我的代码:
Highcharts.chart('graph', {
chart: {
type: 'scatter',
zoomType: 'xy'
},
title: {
text: 'Transaction Hour'
},
subtitle: {
text: '1 year'
},
xAxis: {
categories: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
title: {
enabled: true,
text: 'Days'
},
startOnTick: true,
endOnTick: true,
showLastLabel: true
},
yAxis: {
title: {
enabled: true,
text: 'Time'
},
type: 'datetime',
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'
}
},
legend: {
layout: 'vertical',
align: 'left',
verticalAlign: 'top',
x: 100,
y: 70,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF',
borderWidth: 1
},
plotOptions: {
scatter: {
marker: {
radius: 4,
states: {
hover: {
enabled: true,
lineColor: 'rgb(100,100,100)'
}
}
},
states: {
hover: {
marker: {
enabled: false
}
}
},
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: '{point.x}, {point.y}'
}
}
},
series: [{
name: 'A',
color: 'rgba(153, 255, 102, .5)',
data: [[Friday,1580455597000]]// unix timestamp
}, {name: 'B',
color: 'rgba(223, 83, 83, .5)',
data: [[Thursday,1580372483000],[Thursday,1580359660000]]// unix timestamp
}, {
name: 'C',
color: 'rgba(119, 152, 191, .5)',
data: [[Friday,1580439732000]]// unix timestamp
}]
});
你能帮帮我吗?谢谢你。
此致,
埃卡
解决方案
请注意,使用这种数据结构会完全扰乱您的配置。您已将 设置yAxis.type
为“数据时间”,并且您希望范围为 24 小时范围,但您的数据点之一是Fri Jan 31 2020 07:26:37
,第二个数据点为Thu Jan 30 2020 08:21:23
您提供了两个点之间几乎 23 小时的范围。添加第三点会使您的 yAxis 增加到另一个时间范围。
尝试改用此配置:https ://jsfiddle.net/BlackLabel/5e6sfcuq/
我使用labels.formatter
回调在轴上获取所需的格式。并且yAxis 上的min
和功能保持恒定范围。max
这是我对数据结构的建议:
data: [
[1580455597000,new Date(1580455597000).getHours()]
] // unix timestamp
API:https ://api.highcharts.com/highcharts/yAxis.labels.formatter
API:https ://api.highcharts.com/highcharts/yAxis.tickInterval
如果有什么不清楚 - 随时问。
推荐阅读
- java - 显示条件运算的结果?
- sql - 如何使用 rank 函数来解决这个问题?
- android - Android 自定义 Tabview 布局
- javascript - 幻灯片从右到左
- android - react-native 中的“state.merge 不是函数”
- javascript - CKEDITOR kekule(化学方程式插件)无法在同一页面上的多个实例上工作
- tomcat8 - 无法使用 tomcat 管理器在 tomcat 8.5/ubuntu 18.04 中正确部署 WAR
- web - Nginx v1.14.2——重定向太多
- android - 无法实例化片段(找不到片段构造函数)
- ios - 收到 CKDatabaseNotification 后查询 Changes