4

ブラシの内側の領域を、ブラシの外側の領域とは異なる色または異なる不透明度レベルで表示できるかどうか疑問に思っています。出発点として focus+context の例を使用しています ( http://bl.ocks.org/mbostock/1667367 )。下部のヒストグラム (ブラシが存在する場所) の領域を 0.5 のアルファ チャネルでレンダリングできるかどうか、またブラシ内の領域のアルファを 1.0 にすることができるかどうか疑問に思っています。これは可能ですか?私はこの問題に数日間取り組んできましたが、解決策に近づくことはできません。前もって感謝します。

編集** わかりました。条件付き塗りつぶしの追加に関する以下のコメントから基本的な概念を理解していると思いますが、実装に苦労しています。元の例 ( http://bl.ocks.org/mbostock/1667367 ) では、フォーカスはメインのヒストグラムであり、コンテキストはブラシの小さい方です。ブラシの内側にあるコンテキスト ヒストグラムの領域を別の色に着色するために、ブラシをかけられた関数に 2 行を追加できると思いましたが、うまくいきません。コンソール ウィンドウに「未定義のプロパティの長さを読み取れません」というエラーが表示されます。ブラシをかけた関数は次のようになります。

function brushed() {
  x.domain(brush.empty() ? x2.domain() : brush.extent());
  focus.select("path").attr("d", area);
  focus.select(".x.axis").call(xAxis);
  //these are the two lines that I've added 
  context.select("path").attr("d", area)
    .style("fill", "#ff0000");
}

条件付き塗りつぶし部分を実際に使用していないことがわかります...しかし、ブラシをかけられた関数は切り取られたデータ「領域」のセットを返していると思い、同じ領域を使用できると思いましたが、コンテキストに起因します(フォーカス)...しかし、これはうまくいきませんでした。

4

0 に答える 0