2016-01-04 3 views
2

Я просмотрел примеры и документы amCharts.amCharts Stock Chart с несколькими наборами данных, не показывающими

Вот моя проблема: график показывает только строки, а не два, как это определено в 2-х наборов данных:

var chart; 

function createStockChart() { 
    chart = new AmCharts.AmStockChart(); 


    // DATASETS ////////////////////////////////////////// 

    var dataSet = new AmCharts.DataSet(); 
    chart.dataSets = [{ 
     title: "XWD.TO", 
     color: "#000000", 
     fieldMappings: [ { 
     fromField: "value", 
     toField: "value" 
     }, { 
     fromField: "volume", 
     toField: "volume" 
     } ], 
     dataProvider: chartData, 
     categoryField: "date" 
    }, 

    { 
     title: "portfolio-top-9-12-2015", 
     color: "#FF0000", 
     fieldMappings: [ { 
     fromField: "value", 
     toField: "value" 
     }, { 
     fromField: "volume", 
     toField: "volume" 
     } ], 
     dataProvider: chartData2, 
     categoryField: "date" 
    }]; 



    // PANELS /////////////////////////////////////////// 
    // first stock panel 
    var stockPanel1 = new AmCharts.StockPanel(); 
    stockPanel1.showCategoryAxis = false; 
    stockPanel1.title = "Price"; 
    stockPanel1.percentHeight = 70; 

    // graph of first stock panel 
    var graph1 = new AmCharts.StockGraph(); 
    graph1.valueField = "value"; 
    graph1.comparable = true; 
    graph1.compareField = "value"; 
    graph1.type = "smoothedLine"; 
    graph1.bullet = "round"; 
    graph1.lineThickness = 2; 
    graph1.bulletBorderColor = "#FFFFFF"; 
    graph1.bulletBorderAlpha = 1; 
    graph1.bulletBorderThickness = 3; 
    stockPanel1.addStockGraph(graph1); 

} 

Для полного кода страницы: http://www.fanta-trade.eu/chart.php?tipo=a&code=XWD.TO&compare_top=1&time=1449658858

Это как если код не получая второй набор данных.

+0

У меня нет данных для проверки, но вам кажется, что вам нужен селектор набора данных. см: https://www.amcharts.com/demos/multiple-data-sets/ .hope, это помогает –

ответ

3

Фондовая диаграмма поддерживает несколько наборов данных. Однако по умолчанию для каждого из наборов данных он не будет рисовать график.

По умолчанию он только рисует график для основного выбранного набора данных - первого.

Для того, чтобы рисовать графики для других наборов данных, их нужно «сравнить».

Их можно сравнить, выбрав их в селекторе данных (если у вас есть один включен) или программно, установив значение compared объекта данных в true.

{ 
    title: "portfolio-top-9-12-2015", 
    color: "#FF0000", 
    fieldMappings: [ { 
    fromField: "value", 
    toField: "value" 
    }, { 
    fromField: "volume", 
    toField: "volume" 
    } ], 
    dataProvider: chartData2, 
    categoryField: "date", 
    compared: true 
} 

Также обратите внимание, что сравниваемые графики используют разные настройки внешнего вида. Вы можете установить эти настройки с помощью настройки графика compareGraph. I.e .:

// graph of first stock panel 
var graph1 = new AmCharts.StockGraph(); 
graph1.valueField = "value"; 
graph1.comparable = true; 
graph1.compareField = "value"; 
graph1.type = "smoothedLine"; 
graph1.bullet = "round"; 
graph1.lineThickness = 2; 
graph1.bulletBorderColor = "#FFFFFF"; 
graph1.bulletBorderAlpha = 1; 
graph1.bulletBorderThickness = 3; 
graph1.compareGraph = { 
    "type": "smoothedLine", 
    "bullet": "round", 
    "lineThickness": 2, 
    "bulletBorderColor": "#FFFFFF", 
    "bulletBorderAlpha": 1, 
    "bulletBorderThickness": 3 
}; 
stockPanel1.addStockGraph(graph1); 
+0

отлично ... он работает ... просто не форматирует график так, как должен ... например, ширина a smoothedLine – illinois

+0

Обновлен мой ответ со связанной информацией. – martynasma

+0

благодарит много, очень полезно – illinois

Смежные вопросы