2016-10-27 6 views
0

ハイチャートを使用してグラフを作成しています。私はハイチャート - 1つのデータポイントのボーダーを連続して変更する

var subject1 = [20,22,24,28,24, { marker: { 
            fillColor: 'green', 
            lineWidth: 3, 
            lineColor: "#f39c12" 
           }, y:29}]; 
としての私のシリーズを宣言してい

:私は、シリーズ内の特定のポイントの境界線の色を変更することができるようにしたいのですが、私はそれが(http://jsfiddle.net/081e9sLy/4/ jsfiddle)を動作させることはできません

ですが、6番目のデータポイントにオレンジ色の境界線はありません。しかし、fillColorを "red"に変更すると、データポイントが変更されます。

アドバイスはありますか?

編集:データポイントをマウスオーバーすると、さらに調査したところ、境界線が表示されているようです(ちょっと!)。しかし、私はそれが常に目に見えるようにする必要があります。

+0

。 – Mahi

+0

私は1つのポイントにボーダーを追加しようとしていますが、ボーダーの色は "#f39c12"です。これはオレンジです。 – samb8s

+1

6番目のデータポイントにオレンジの境界線が表示されます。何か不足していますか? –

答えて

2

これはバグのようです。 lineWidthはポイントのマーカーオプションで定義されているときは尊重されません。バージョン4.2.7で動作しましたhttp://jsfiddle.net/081e9sLy/7/

バージョン5で使用したい場合は、以下のコードでHighchartsメソッドを上書きしてみてください。

Highcharts.seriesTypes.line.prototype.pointAttribs = function (point, state) { 
var seriesMarkerOptions = this.options.marker, 
        seriesStateOptions, 
        pointOptions = point && point.options, 
        pointMarkerOptions = (pointOptions && pointOptions.marker) || {}, 
        pointStateOptions, 
        strokeWidth = pointMarkerOptions.lineWidth || seriesMarkerOptions.lineWidth, 
        color = this.color, 
        pointColorOption = pointOptions && pointOptions.color, 
        pointColor = point && point.color, 
        zoneColor, 
        fill, 
        stroke, 
        zone; 

       if (point && this.zones.length) { 
        zone = point.getZone(); 
        if (zone && zone.color) { 
         zoneColor = zone.color; 
        } 
       } 

       color = pointColorOption || zoneColor || pointColor || color; 
       fill = pointMarkerOptions.fillColor || seriesMarkerOptions.fillColor || color; 
       stroke = pointMarkerOptions.lineColor || seriesMarkerOptions.lineColor || color; 

       // Handle hover and select states 
       if (state) { 
        seriesStateOptions = seriesMarkerOptions.states[state]; 
        pointStateOptions = (pointMarkerOptions.states && pointMarkerOptions.states[state]) || {}; 
        strokeWidth = pointStateOptions.lineWidth || seriesStateOptions.lineWidth || strokeWidth + seriesStateOptions.lineWidthPlus; 
        fill = pointStateOptions.fillColor || seriesStateOptions.fillColor || fill; 
        stroke = pointStateOptions.lineColor || seriesStateOptions.lineColor || stroke; 
       } 

       return { 
        'stroke': stroke, 
        'stroke-width': strokeWidth, 
        'fill': fill 
       }; 

}; 

例:http://jsfiddle.net/081e9sLy/9/あなたは、グラフの色の緑で埋めので

+1

ありがとう、ありがとう。私がやっていたことは、少なくとも理論的に正しいと思ってうれしいです! – samb8s

+1

はい、あなたのコードは間違いなく動作するはずです。このバグはhttps://github.com/highcharts/highcharts/issues/5897で報告されています – morganfree

関連する問題