2017-07-27 3 views
1

これは私が生成したグラフのイメージです:Current Series ChartDC.jsシリーズチャートのさまざまな行に異なる線パターンをプロットするにはどうすればよいですか?

すべての行に同じパターンを適用したラインチャートオブジェクトにdashStyle関数を適用しました。私は別のパターン(破線、点線、平面線など)を持つ各ラインとのシリーズチャートをプロットする必要があります。チャート関数の "c"オブジェクトには多くの属性があります。どの属性がデータ値に対応しているのかわかりません。 "c"オブジェクトのデータ属性には、 "_dc/dc.baseMixin/_chart.data()"のようなものがあります.JavaScriptとDCの新機能で、何が起こっているのか完全に理解していません。

折れ線グラフで、異なる線の異なるパターンをプロットする方法はありますか?

は、ここでは、この例に言及した後に実施された私の現在のコードです:http://dc-js.github.io/dc.js/examples/range-series.html

focusChart 
.width(920) 
.height(380) 
.chart(function(c) { console.log(c);return dc.lineChart(c).dashStyle([2,3]).interpolate('cardinal').evadeDomainFilter(true); }) 
.x(d3.scale.linear().domain([1995,2017])) 
.brushOn(false) 

.yAxisLabel("Topic Weight") 
.xAxisLabel("Year") 
.elasticY(true) 
.dimension(series1Dimension) 
.group(series1Group) 
.colorAccessor(function(d){ 
    return d.key.split(",")[0].slice(5); 
}) 
.colors(TopicColorScale) 
focusChart.seriesAccessor(function(d) {return " " + d.key[0];}) 
.keyAccessor(function(d) {return +d.key[1];}) 
.valueAccessor(function(d) {return +d.value;}) 

.legend(dc.legend().x(400).itemHeight(13).gap(1).horizontal(10).legendWidth(540).itemWidth(210)); 


focusChart.yAxis().tickFormat(function(d) {return d3.format('d')(d);}); 


focusChart.xAxis().tickFormat(function(d) {return d3.format('d')(d);}); 


focusChart.margins().left += 20; 

任意の助けもいただければ幸いです!

答えて

1

.chart(function(c) { console.log(c);return dc.lineChart(c).dashStyle([2,3]).interpolate('cardinal').evadeDomainFilter(true); }) 

サブチャートを生成する機能を提供します。関数は、次のパラメータを取ることは、この関数appear to be undocumentedのパラメータが、quick look at the source reveals

var subChart = _charts[sub.key] || _chartFunction.call(_chart, _chart, chartGroup, sub.key, i); 

  1. 複合チャート
  2. 複合チャートは
  3. 登録されているチャート基サブチャートのキー
  4. サブチャートのインデックス

それはあなたが望む3番目の引数です。それはあなたのseriesAccessorによって返されたキーであり、そのキーに基づいてdashStyleを設定する方法を使用できます。

+0

ありがとうございます!私は提案されたようにチャート関数の3番目の引数(Key)を使って、各行に対して異なるdashStyleロジックを実装することができました。あなたは素晴らしいです! また、異なるパターンを追加する方法があるかどうか尋ねたいと思いますか?私は20行をプロットしていますが、dashStyleメソッドはパターンのバリエーションを十分に作り出すのに役立ちました。もっと知りたいのは興味があるだけです。 –

+1

[SVGの 'marker-pattern'をまだサポートしているブラウザはありません(https://stackoverflow.com/questions/41555688/svg-repeating-markers-through-the-line-path)。しかし、その質問は[行の別の答え](https://stackoverflow.com/a/41108752/676195)にリンクしています。これは、行に沿った%位置にテキストシンボルを配置できることを示しています。 – Gordon

関連する問題