2016-11-28 21 views
1

私は、プロットチャートのy軸上の単一のグリッド線を強調表示する方法を探しています。単一のy軸グリッド線を強調表示する方法

enter image description here

例:上段で100Kラインが厚く、異なる色であるべきです!

私はいつも特別なy軸値のグリッド線を強調したいので、与えられたy値に対して別の線を引く方が簡単かもしれません。これを行う簡単な方法はありますか?

答えて

0

クラスとインデックスで水平方向のティックラインを選択し、styleを変更することができます。

Plotly.d3.selectAll('.ygrid').filter('.crisp').filter(function(d,i) {return i==1}) 

水平目盛り線のクラスは、ygrid crispとその指標、すなわちx軸の後の最初の行、0から始まります。

固定数のティックラインと固定範囲がある場合は動作します。そうしないと、常に異なるラインが強調表示されます。

より堅牢なアプローチについては、2番目のスニペットをご覧ください。

var data = [{ 
 
    x: ['giraffes', 'orangutans', 'monkeys'], 
 
    y: [50, 14, 33], 
 
    type: 'bar' 
 
}]; 
 

 
Plotly.newPlot('myDiv', data); 
 

 
var line = Plotly.d3.selectAll('.ygrid').filter('.crisp').filter(function(d,i) {return i==1}) 
 
line.style("stroke", "rgb(255,0,0)") 
 
line.style("stroke-width", "10px")
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> 
 
<div id="myDiv" style="width: 480px; height: 400px;">


line_label我々が強調表示したい目盛りラインに次のラベルを定義します。すべての目盛ラベルに対応するティックラインがあり、インデックスがちょうど1つであるという事実を利用することができます。

最初に、正しいラベルでティックラベルを識別し、そのインデックスを使用してティックラインを識別し、そのスタイルを変更します。

以下のスニペットでは、ランダムな目盛りラベルとティックラインを含むランダムデータを生成しますが、y == 20の行は常にハイライト表示されます。

var data = [{ 
 
    x: ['giraffes', 'orangutans', 'monkeys'], 
 
    y: [Math.random()*100, 14, 33], 
 
    type: 'bar' 
 
}]; 
 

 
Plotly.newPlot('myDiv', data); 
 

 
var line_label = '20'; 
 
var line_index = -1; 
 
Plotly.d3.selectAll('.ytick').filter(function(d, i) { 
 
    if (this.textContent == line_label) { 
 
     line_index=i; 
 
     return i; 
 
    } 
 
}) 
 

 
var line = Plotly.d3.selectAll('.ygrid').filter('.crisp').filter(function(d,i) {return i == line_index - 1}) 
 
line.style("stroke", "rgb(255,0,0)") 
 
line.style("stroke-width", "10px")
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> 
 
<div id="myDiv" style="width: 480px; height: 400px;">

+0

こんにちはマクシミリアン、あなたのソリューションが動作します - あなたに感謝。しかし、私のチャートの値がデータベースから動的に導出され、毎月変わるので、時間の経過と共にレンジが変化するならば、私は別のラインを強調するという事実に言及すると正しいです。そのy値 – Bongowen

+0

@Bongowen:安定した柔軟なソリューションの最新の回答をご覧ください。 –

関連する問題