2016-08-23 18 views
1

折れ線グラフの線を表示する必要があります。タイルを移動し、最大ビットレート値の線を表示し、ホバー上のラベルと軸ポインタを表示します。テーブルと時間Slider.Yの次元は "ビットレート合計"または "ビットレート平均"(コードで定義されているように)を表示する必要があります。 Xの次元は、週の範囲で15分の間隔を表示する必要があります。DC.js折れ線グラフ - 表示されている線なし

データをテーブルにアップロードできますが、折れ線グラフにはアップロードできません。 .renderDataPoints()を使用してグラフ上のポイントを見ることはできますが、ラインは表示されません。 データをチェックしました。古いバージョンのカラーを使用していないnull/NaN値が返されませんでした。

コードはhttps://jsfiddle.net/dani2011/bu2ag0f7/8/にあります。私のCSVをvarデータで置き換えようとしましたが、現時点では何も表示されていません。全体のコードはhttps://groups.google.com/forum/#!topic/dc-js-user-group/MEslyF2RWRI

で表示されます。

答えて

2

Here's my go-to-answer for how to put data into a jsFiddle。基本的には、HTML内の未使用のタグに貼り付けるのが最も簡単です。 bl.ocks.org/blockbuilder.orgは簡単です。

がここにデータを使用してフィドルのフォークがそのようにロードされています: http://jsfiddle.net/gordonwoodhull/bu2ag0f7/17/

私はまた、これらのd3.csvが混乱しBITRATE計算が失敗する原因しまったので、列名からスペースを削除する必要がありました。

レンダリングの中に、dimについての苦情で失敗していた迷子コードもありました。

データが表示されなかった主な理由は、入力グループが使用可能な集約データを生成していなかったためです。あなたのデータは非常に近いので、週ごとに集計するとすべてが集計されます。

これをデバッグする方法は、一つの配列を返すたチャートの初期化の前にブレークポイントまたはにconsole.logを入れて、この場合bitrateWeekMinIntervalGroupMoveとminIntervalWeekBitrateGroupにおいてgroup.all()

の結果を見ていますキーと値のペア。 1つの点で線を描くことはできません。 :)

元々は15分間隔で集計したかったようですが、それではその作業を開始しましょう。

何らかの理由で、クロスフィルタには2つのレベルのアグリゲーションがあり、ディメンションレベルとグループレベルがあります。ディメンションはキーを生成する際に最初に亀裂があり、その後、グループはこれらのキーをさらに細分化します。

min15関数は各タイムキーを15分前にマッピングしますが、15分以上のデータが必要です。それでは、すでに低い解像度にマッピングされていないdateDimension、上のこれらのグループを入れてみましょう:

var minIntervalWeekBitrateGroup = dateDimension.group(min15).reduceSum(function (d) { 
    return +d.BITRATE 
}); 
var bitrateWeekMinIntervalGroupMove = dateDimension.group(min15).reduce(
... 

グレート、今30個のデータポイントがあります。そしてそれは線を引く。

squished lines

私はドットが少し小さく:) 30個のピクセルで、ラインを見ることが困難であったため。

enter image description here

まだあなたはあまりにも遠くに拡大するとラインがゼロに低下するので機能を減らす(またはどこか)で不具合があるように思われる:範囲チャートは、ラインのより多くを明らかに使用してズーム

しかし、うまくいけば、これはあなたをもう一度動かすのに十分です。あなたのフィドルの

マイフォーク:http://jsfiddle.net/gordonwoodhull/bu2ag0f7/25/

+0

あなたのヘルプは貴重です。あなたの説明、時間、コードの実際の変更については、Gordonに感謝します。 – Dani

関連する問題