Highcharts未将日期字符串绘制为类别
Highcharts not plotting Date string as Category
我使用Highcharts来绘制JSON数据。日期采用字符串格式。
JSON数据:[{"BRENT_SPOT":70.88,"TRADE_DATE":"31-JUL-2009"},{"BRENT_SPOT":73.28,"TRADE_DATE":"03-AUG-2009"},{"BRENT_SPOT":74.31,"TRADE_DATE":"04-AUG-2009"},{"BRENT_SPOT":74.96,"TRADE_DATE":"05-AUG-2009"},{"BRENT_SPOT":74.4,"TRADE_DATE":"06-AUG-2009"},{"BRENT_SPOT":72.84,"TRADE_DATE":"07-AUG-2009"},{"BRENT_SPOT":73.29,"TRADE_DATE":"10-AUG-2009"},{"BRENT_SPOT":72.04,"TRADE_DATE":"11-AUG-2009"}]
JQuery代码:
<script>
var chart;
$(function() {
var options = {
chart: {
renderTo: 'container',
zoomType: 'xy',
type: 'line'
},
title: {
text: 'Brent Daily Price Curve (FPC as at <cfoutput>#f_date#</cfoutput>)'
},
xAxis: {
labels: {
rotation: 45,
step: 3
},
type: 'category'
},
yAxis: {
lineWidth: 1,
title: {
text: '$ USD'
},
min: 0
},
series: []
};
$.getJSON("brentpricehc_test.cfm?f_date=<cfoutput>#f_date#</cfoutput>", {}, function(jsonResult) {
var BrentUSDPrice = {
name: "Brent Spot (USD)",
type: "line",
data: [],
marker: {
radius: 2
}
};
$(jsonResult).each(function(index) {
BrentUSDPrice.data.push([this.TRADE_DATE, this.BRENT_SPOT]);
});
/*options.series[0] = BrentUSDPrice;*/
options.series.push(BrentUSDPrice);
chart = new Highcharts.Chart(options);
});
});
</script>
我无法绘制每个日期字符串的任何值。我尝试将JSON日期转换为datetime,但仍然存在相同的问题。
更多细节(用于测试目的):修改到下面一行,用正确的"brent_spot"值绘制图形。这意味着问题在于"trade_dates"的方式"没有"绘图。
BrentUSDPrice.data.push([index, this.BRENT_SPOT]);
编辑2:(使用Datetime类型使代码工作)
JSON Data (New):返回TO_CHAR(TRADE_DATE, '年月日')
[{"BRENT_SPOT":70.88,"TRADE_DATE":"2009'/07'/31"},{"BRENT_SPOT":73.28,"TRADE_DATE":"2009'/08'/03"},{"BRENT_SPOT":74.31,"TRADE_DATE":"2009'/08'/04"},{"BRENT_SPOT":74.96,"TRADE_DATE":"2009'/08'/05"},{"BRENT_SPOT":74.4,"TRADE_DATE":"2009'/08'/06"},{"BRENT_SPOT":72.84,"TRADE_DATE":"2009'/08'/07"},{"BRENT_SPOT":73.29,"TRADE_DATE":"2009'/08'/10"},{"BRENT_SPOT":72.04,"TRADE_DATE":"2009'/08'/11"}]
$(jsonResult).each(function(index) {
BrentUSDPrice.data.push([new Date(this.TRADE_DATE), this.BRENT_SPOT]);
});
使用的服务器端语言:Coldfusion
数据库:Oracle
我是不是做了什么傻事?我刚刚尝试了您的代码,它工作得非常好,参见:http://jsfiddle.net/3bQne/1026/
我猜,你需要更新到Highcharts 3.0.10
才能让这个工作。
如果您使用type: 'category'
,那么您需要将name:
分配给数据点。参见http://api.highcharts.com/highcharts#xAxis
categories
条目。如果在x轴上有类别,则在该轴上使用名称而不是数字。从Highcharts 3.0开始,类别也可以通过给每个点一个名字和设置轴类型为"category"来提取。
所以问题是你是否在使用Highcharts 3.0如果你使用了,那么它应该看起来像这样:
data: [{
name: 'Point 1',
color: '#00FF00',
y: 0
}, {
name: 'Point 2',
color: '#FF00FF',
y: 5
}]
见:http://api.highcharts.com/highcharts series.data
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- D3在一个调用中绘制不同的SVG形状,没有可见性
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 有没有一个javascript图形绘制库可以进行气球树布局
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- 绘制动画openlayers线条字符串路径
- Javascript,绘制字符串,画布
- 根据64字符串绘制画布图片时出错
- 将 json 字符串转换为数组格式,可用于绘制数据图表
- 获取要发送到服务器以导出为报表的数据表当前绘制查询字符串
- 在 JavaScript 中从 JSON 字符串绘制图表
- Openlayers-在地图上绘制字符串
- 在Javascript中绘制字符串的上半部分
- Highcharts未将日期字符串绘制为类别