2017-06-10 20 views
0

ハイチャートにy軸上に何らかの永久注釈を入れる方法はありますか?私のy軸が0-100になるとします。返されるデータセットの一部はminとmaxです。軸上に注釈を付けてminとmaxが何であるかを言いたいので、ズームするときにその注釈を保持しておきたいと思います。私はAnnotationsプラグイン(http://blacklabel.github.io/annotations/)を試しましたが、それは私が必要とするものを全くしていないようです。ハイチャート:y軸上の注釈

添付されています。醜い、私が望むもののスクリーンショットを嘲笑しました。 Ideal MaxとIdeal Minは、プロットバンドを使って、私がすでに持っているものです。 y軸上のMinおよびMaxアノテーションは、私が望むものです。

Ugly, mocked up screenshot of what I would like. The Ideal Max and Ideal Min are things I already have, by using plot bands. The Min and Max annotations on the y axis are what I would like.

+0

は間違いですが、私はちょうど指すようにわからないんだけどラベルフォーマッタ関数、余分な軸のラベル/ラベル、およびこれを実現するために使用できる他の多くのオプションがあります。あなたはあなたが望むもののスクリーンショットまたは何かを提供できますか? – albert

+0

私は嘲笑されたスクリーンショットを添付しました。 – cloudwalker

答えて

1

あなたは、プログラムのチャートに注釈を付けることができます。

ロード時にRendererを使用してラベルまたはシェイプを作成できます。

function annotateChart({ text, value }) { 
    const annons = this.annons; 

    const label = this.renderer.label(text, 0, -9e9).attr({ 
    stroke: 'red', 
    'stroke-width': 2, 
    align: 'center', 
    zIndex: 99 
    }).add(); 

    annons.push({ 
    label, 
    value 
    }); 
} 

function redrawAnnons() { 
    const xAxis = this.xAxis[0]; 
    const yAxis = this.yAxis[0]; 

    this.annons.forEach(ann => { 
    ann.label.animate({ 
     x: xAxis.toPixels(0), 
     y: yAxis.toPixels(ann.value) 
    }); 
    }); 
} 

とチャートの設定:

Highcharts.chart('container', { 
chart: { 
zoomType: 'xy', 
events: { 
    load: function() { 
    this.annons = []; 

    [{ 
     text: 'min', 
     value: 20 
    }, { 
     text: 'max', 
     value: 85 
    }].forEach(obj => { 
     annotateChart.call(this, obj); 
    }); 

    redrawAnnons.call(this) 
    }, 
    redraw: redrawAnnons 
} 
}, 

例:再描画では、あなたは注釈を(再描画ズームに解雇された)再描画することができますがhttp://jsfiddle.net/47ao5tfz/

+0

これは私が必要としていたものです!本当にありがとう! – cloudwalker

関連する問題