Graph 如何使用amchart堆叠图表?
是否可以在一个图表中堆叠2个或多个图形?使用相同的滚动条/图表光标 我在live编辑器中尝试过,但没有找到任何选项来实现这一点 以下是som图片说明: 目前,我有以下图表: 但我想要一个这样的图表:Graph 如何使用amchart堆叠图表?,graph,stack,scrollbar,amcharts,Graph,Stack,Scrollbar,Amcharts,是否可以在一个图表中堆叠2个或多个图形?使用相同的滚动条/图表光标 我在live编辑器中尝试过,但没有找到任何选项来实现这一点 以下是som图片说明: 目前,我有以下图表: 但我想要一个这样的图表: 谢谢你的帮助:)为了运动,我试着实现它。好消息——有可能:) 首先,你需要准备两张图表 第一张图表 已启用滚动条 图表光标已启用 类别轴隐藏 禁用图例 底边距:0 第二张图表 滚动条已禁用 图表光标已启用 类别轴已启用 启用图例 上页边距:0 这将创建两个图表,“粘合”在一起,就像在实体模型
谢谢你的帮助:)为了运动,我试着实现它。好消息——有可能:) 首先,你需要准备两张图表 第一张图表
- 已启用滚动条
- 图表光标已启用
- 类别轴隐藏
- 禁用图例
- 底边距:0
- 滚动条已禁用
- 图表光标已启用
- 类别轴已启用
- 启用图例
- 上页边距:0
- 光标
- 传奇
- 缩放/平移
/**
* Use events to sync up cursors and zooms
*/
for ( var x = 0; x < AmCharts.charts.length; x++ ) {
// use "changed" event to track cursor movement on all charts
// place the cursor on other charts on the same index
AmCharts.charts[ x ].addListener( "changed", function( event ) {
// find which category is currently being rolled over
var category = event.chart.dataProvider[ event.index ][ event.chart.categoryField ];
// cycle through all available charts and place the cursor at
// the same category
for ( var i = 0; i < AmCharts.charts.length; i++ ) {
if ( event.chart !== AmCharts.charts[ i ] ) {
AmCharts.charts[ i ].chartCursor.showCursorAt( category );
}
}
} );
// use "zoomed" event to track zooms/pans so we can apply
// the same zoom across other charts
AmCharts.charts[ x ].addListener( "zoomed", function( zoomEvent ) {
// cycle through all available charts and apply same zoom
for ( var i = 0; i < AmCharts.charts.length; i++ ) {
if ( zoomEvent.chart !== AmCharts.charts[ i ] && ( AmCharts.charts[ i ].startIndex != zoomEvent.startIndex || AmCharts.charts[ i ].endIndex != zoomEvent.endIndex ) ) {
AmCharts.charts[ i ].zoomToIndexes( zoomEvent.startIndex, zoomEvent.endIndex );
}
}
} );
}
/**
* Use the last chart to display legend
* We will collect graphs from other charts and mirror them on
* the last chart.
*/
var lastChart = AmCharts.charts[ AmCharts.charts.length - 1 ];
for ( var x = 0; x < ( AmCharts.charts.length - 1 ); x++ ) {
// add graphs
for ( var g = 0; g < AmCharts.charts[ x ].graphs.length; g++ ) {
// create the related graph
var graph = new AmCharts.AmGraph();
graph.lineAlpha = 0;
graph.lineColor = AmCharts.charts[ x ].graphs[ g ].lineColor;
graph.relatedGraph = AmCharts.charts[ x ].graphs[ g ];
graph.valueField = "value_" + x + "_" + g;
graph.showBalloon = false;
graph.includeInMinMax = false;
graph.title = AmCharts.charts[ x ].graphs[ g ].title;
lastChart.addGraph( graph );
// mirror data for rollovers
for ( var i = 0; i < lastChart.dataProvider.length; i++ ) {
lastChart.dataProvider[ i ][ graph.valueField ] = AmCharts.charts[ x ].dataProvider[ i ][ AmCharts.charts[ x ].graphs[ g ].valueField ];
}
}
}
/**
* Add events to the legend of last chart so we can toggle
* graphs of the other charts
*/
lastChart.addListener( "init", function() {
// hide graph
lastChart.legend.addListener( "hideItem", function( event ) {
if ( event.dataItem.relatedGraph !== undefined ) {
event.dataItem.relatedGraph.chart.hideGraph( event.dataItem.relatedGraph );
}
} );
// show graph
lastChart.legend.addListener( "showItem", function( event ) {
if ( event.dataItem.relatedGraph !== undefined ) {
event.dataItem.relatedGraph.chart.showGraph( event.dataItem.relatedGraph );
}
} );
} );
您是否考虑过使用股票图表进行此操作?它支持多个图表(面板),并自动相互同步以及共享同一滚动条。请注意,它是针对基于日期的数据的,所以如果您针对的是基于任意系列的数据,股票图表可能不起作用。是的,我做到了。但是时间格式有问题。我有一个基于毫秒的时间戳,而图表无法“反看穿”它。我发现了这个:但这对我来说不起作用。。。但给我一点时间,我再检查一下……好的,你是对的。我将序列图和股票图中的设置混合在一起。要启用正确的数据格式,必须设置以下选项:'categoryAXESettings:{minPeriod:'fff',groupToPeriods:['fff']//specifyperiod grouping},'worksperfect。唯一不能正常工作的是打开/关闭图形的功能。它只适用于最后一个图形。你的意思是,如果每个图表“面板”有多个图形?