0

私はこれを行うことについて少なくとも半ダースの他の質問を読みました、そして私は私のものがどのように違うのか理解できません:http: //jsfiddle.net/JakobJingleheimer/Z5UFg/1/

LoadGraph.check_dataコンソールから実行する関数を追加しました。実行後に出力されるデータload_data(1,"199 Water St",7);は次のとおりです。

#mine
[ { label:"coffee",  data:[ [1659] ] },
  { label:"cocoa",  data:[ [717] ] },
  { label:"tea",  data:[ [206] ] }
]

これは、ドキュメントの例(プロットオプションのすぐ上)とまったく同じように見えます。

#doc example
[ { label: "Foo", data: [ [10, 1], [17, -14], [30, 5] ] },
  { label: "Bar", data: [ [11, 13], [19, 11], [30, -7] ] }
]

SO回答5661134の後で構造をモデル化しようとしましたが、それもうまくいきませんでした(フィドルで見られるのとまったく同じ結果)。

フィドルの2番目のグラフは、3つのバーが隣り合っているか、(さらに良いことに)3つのバーが互いに積み重なっている必要があります。

更新:次を取得するためにx値を追加しました(ただし、それでも機能しません、フィドル):

#http://jsfiddle.net/JakobJingleheimer/Z5UFg/3/
[ { label:"coffee",  data:[ [7, 1659] ] },
  { label:"cocoa",  data:[ [7, 717] ] },
  { label:"tea",  data:[ [7, 206] ] }
]
#http://jsfiddle.net/JakobJingleheimer/Z5UFg/2/
[ { label:"coffee",  data:[ [0, 1659] ] },
  { label:"cocoa",  data:[ [1, 717] ] },
  { label:"tea",  data:[ [2, 206] ] }
]

オブジェクト性(ラベル付けなど)を削除すると、機能します(ただし、f_opts.series.stack=true機能しない理由を理解する必要があります。3つのバーはすべて青色なので、3つすべてを同じシリーズとして扱っていると思います。 ):v4

UPDATE 2これらは2つの異なる場所にあるはずですか?つまり、label + data array-objectはoptionsオブジェクトに含まれ、データもデータ配列に含まれる必要がありますか?ドキュメントには、親オブジェクトが何であるかが記載されていないため、理解するのが少し難しいです。

4

2 に答える 2

1

違いは、データポイントが1つの値のみで構成されているのに対し、Flotには[x、y]のペアが必要なことです。詳細については、ドキュメントの「データ形式」セクションを確認してください。

[f_data]編集: f_dataがすでに系列の配列であるにもかかわらず、$。plotへの呼び出しが使用しているようにも見えます。それがあなたの問題の現在の原因のようです。

さらに問題が発生した場合は、コードをより単純な例に切り詰めて、そこから作業を進める必要があります。これは質問からデバッグセッションに変わりました。

于 2012-10-01T11:35:06.437 に答える
1

このバージョンのフィドルはあなたがやろうとしていることかもしれないと私は信じています。

問題は、f_dataオブジェクトの配列、具体的には一連のオブジェクトではなく、単一のオブジェクト{}として扱うことにありました。(これは、を使用したプロット呼び出しで配列に強制することで回避できましたが、これにより[f_data]単一の系列に制限されます。)設定する代わりに実行したいのは、f_data = tmp代わりに完全なシリーズオブジェクトを配列としてf_datawithにプッシュすることです。tmpdata

f_data.push({label:cat, stack:true, data:tmp});

f_data私の例でわかるように、各系列オブジェクト(配列内の各要素)には独自のデータとラベルがあります。

スタッキングが機能していない理由は2つあります。

  1. スタック機能を取得するには、 jquery.flot.stack.jsファイルを含める必要があります。(リンクされたリソースをフィドルに追加しました。)
  2. スタッキングは、複数のシリーズでのみ意味があります。「深度」ビューは、それぞれ1つのデータポイントを持つ3つの個別のシリーズを作成するのではなく、1つのシリーズに3つの重複するデータポイントを追加することでした。

私の例はあなたが目指していた結果を達成すると信じています。間違えたら教えてください。追加した新しい行に//NEWのタグを付けて、変更を強調しました。

于 2012-10-04T06:17:49.557 に答える