我有以下代码:http://jsfiddle.net/maniator/vTjW8/
var createChartTemplate = function() {
return {
chart: new Highcharts.StockChart({
chart: {
renderTo: 'container'
},
series: []
}),
addSeries: function(name) {
this.chart.addSeries({
name: name,
data: [],
id: Math.floor(Math.random()*1000)
});
},
addPoint: function(data, series) {
var seriesIndex = this.seriesExists(series);
if (!(seriesIndex === false)) {
this.chart.series[seriesIndex].addPoint(data, false);
}
this.chart.redraw();
},
seriesExists: function(series) {
var seriesIndex = false;
$.each(this.chart.series, function(index, item) {
if ($.trim(item.name) == $.trim(series)) {
seriesIndex = index;
return false;
}
});
return seriesIndex;
}
}
} …Run Code Online (Sandbox Code Playgroud) 我在使用highstock动态添加系列时遇到了问题.为了做到这一点,我正在使用chart.addSeries函数.第一个系列也应该通过来自Web服务的数据动态添加.我的问题出在我的图表的第一个视图中.我的意思是当首次显示图表时滚动条没有正确显示,但是当我点击ZOOM区域(1,3,6个月 - 每年 - ytd)时,会出现滚动条.
chart.addSeries({
name: name,
data: data,
type: 'spline'
});
Run Code Online (Sandbox Code Playgroud)
我也将数据分别设置为导航器(为了正确地在xAx上有数据)并且系列属性为空(起初我没有任何系列) - 问题出在这里(空系列)
我已经看到了很多关于addSeries到其他系列的例子,但还没有看到第一个系列.
var navigator = chart.get('navigator');
navigator.setData(data);
Run Code Online (Sandbox Code Playgroud)
我搜索了很多,但我找不到一个好的解决方案.请帮帮我......
谢谢
是否可以在Highstock-chart中添加新的y轴?我已经尝试在选项中添加一个并重新绘制,但这似乎不起作用.
HighCharts的文档为图表对象保存了addAxis()函数,但在HighStock中,此函数不存在.任何替代品?
我正在开发一个highcharts项目,我们需要在运行时显示/隐藏导航器,具体取决于屏幕上过滤器的值.
我们已经添加/显示/隐藏了各种数据系列 - 但是我找不到api调用,它允许我在运行时动态隐藏导航器?有没有人知道这样做的方法 - 我不愿意重新加载整个图表,除非我必须这样做.
谢谢大家!
有没有办法将yaxis格式化为我想要的东西.
事实上,有时在y轴上,数据显示为右边的(k)而不是千.
我想删除(k).我该怎么做?
我想要的yaxis图像:

我想在使用Highcharts/Highstock导出图像时更改轴标签大小.请看这个小提琴.
exporting: {
chartOptions: {
rangeSelector: {
enabled: false
},
yAxis: {
labels: {
style: {
color: '#000',
fontSize: '14px'
}
}
}
}
},
Run Code Online (Sandbox Code Playgroud)
它似乎无法正常工作.有什么建议?
我想添加一些序列(我从Web服务获取序列数据作为3dim数组(并将其作为json返回)-我不知道要获得的序列数,因此我必须动态加载序列数据)。
在javascript中,我正在构建一个对象:(例如此highstock示例:http : //jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/比较/)
seriesOptions[i] = {
name: namearray[i],
data: dataarray
};
e.g. result: [Object { name="Series", data=[[1041375600000, 29,9]]}]
Run Code Online (Sandbox Code Playgroud)
我试图添加这样的系列:
$.each(seriesOptions, function (itemNo, item) {
chart.addSeries({
name: item.name,
data: item.data
}, false);
});
chart.redraw();
Run Code Online (Sandbox Code Playgroud)
但是该图表有点奇怪,并且至今未转换为时间戳。
网络服务中的图表数据是否存在问题?
这是我的代码:http : //jsfiddle.net/DGdaf/2/
感谢您到目前为止的任何帮助。
编辑
似乎图表忽略了时间轴/缩放值的所有默认值。我不知道为什么它不显示这些组件。
问题可能是初始化后我正在绘制图表吗?
chart = new Highcharts.Chart(options);
Run Code Online (Sandbox Code Playgroud)
但是我必须这样做,因为会导致动态序列加载。
EDIT2
我不确定是否要加载太多数据或其他东西。我无法动态创建我的系列。
for(i=0; i<seriesOptions.length; i++){
chart.addSeries({
name: seriesOptions[i].name,
data: seriesOptions[i].data
}, true);
};
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,用户可以使用我编写的UI来添加/删除他们想要的HighStock组件系列.但是,当用户添加多个时间序列并且图例位于图表下方时,它会缩小图表的高度(有利于图例).这样整体高度保持不变.
但是,我有兴趣让绘图区域保持相同的高度,并且仍然有下面的图例,如果需要可以改变整体高度.
想法?
在下面的HighCharts示例中,串联A和B具有相同的数据.B在图表绘图区域中只能看到行,因为它直接绘制在上面A.
最终用户不可能知道它A落后了B.
我们可以tooltip.shared = true在配置对象中设置当在任何系列上悬停时显示给定x轴点的所有数据值.但是,在我的实际例子中,我在图表上绘制了多达50个系列,这是不合适的.
是否可以保持行为tooltip.shared = false,但是当用户将鼠标悬停在与该点重叠的系列中时,可以显示工具提示中的所有(且仅有)重叠系列值?或者是否有任何其他用户友好的方式来表明在给定的x值上有2个以上相同的y值?
http://jsfiddle.net/adamtsiopani/XbYZz/
$(function () {
$('#container').highcharts({
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
tooltip: {
valueSuffix: '°C'
},
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
data: [7.0, 6.9, 9.5, 14.5, 18.2, …Run Code Online (Sandbox Code Playgroud)