2017-07-21 9 views
0

基本的に私は連続的なグラフが必要ですが、正の値だけが入力されていれば、負の値がある場合はそれを表示することができます。 ValueAxisに「最小」プロパティを使用してゼロに設定すると、これによってチャートにネガティブが表示されなくなります。一方、「baseValue」を0に設定しても、渡される値に基づいて計算されます。 は、ここに例を示します http://jsfiddle.net/b3kyos6g/正の値のみが存在する場合は0から始まり、負の値も受け入れる

"valueAxes": [{ 
    "position": "left", 
    "title": "Visitors", 
    "baseValue": 0, 
}], 

だけ正1に負の値を変更(削除 - )

答えて

0

ドキュメントは、おそらくどのようbaseValue作品に明確ではありません。 baseValueは、「ゼロライン」を再定義するために使用されます。つまり、エリアグラフの塗りつぶしがその値に移動し、列がその値から開始します。軸のスケールまたは最小/最大とは関係ありません。

:チャートは自動的に値がすべて正であるならば、あなたはそのように、あなたのデータ値をチェックして、前のチャートの初期化に適切なように、最小を設定する AmCharts.addInitHandlerを使用してミニプラグインを作成することができ、ゼロから始めるようにするに

// Mini plugin to force a zero minimum on the first value axis if all values 
// are non-negative. Can be extended to support multiple value axes if needed. 
AmCharts.addInitHandler(function(chart) { 
    //get all value fields if there are multiple graphs 
    var valueFields = chart.graphs.map(function(graph) { 
    return graph.valueField; 
    }); 
    //find out if there are any negative values in the dataProvider for any graph. 
    var containsNegatives = chart.dataProvider.some(function(dataItem) { 
    return valueFields.some(function(valueField) { 
     return dataItem[valueField] < 0; 
    }); 
    }); 

    //only set the value axis minimum to 0 if there are no negatives. 
    if (!containsNegatives) { 
    chart.valueAxes[0].minimum = 0; 
    chart.validateData(); 
    } 
}, ['serial']); 

an updated fiddleは、2つのチャートを使用してこれを示しています。

関連する問題