2009-02-28 15 views
2

折れ線グラフを作成するとき、異なる部門の営業売上に対して、水平には日、垂直にはドルです。行の上にマウスを置くと、dataTipはその部門の売上を教えてくれます。その日に。すべての部門を同時に表示したいので、3日目にカーソルを置くと、3日目のすべての部門のデータティップを表示して、同じ日のすべての売上の値を比較できるようにします。私は一度にすべての行を表示するdataTipsのmouseSensitivityを設定しましたが、1つの部門の2日目と3日目の3日目が必要になりました。これは実際にバグとして投稿されており、ここでよりよく説明されています:http://bugs.adobe.com/jira/browse/FLEXDMV-1853FLEX:LineChart DATATIPを垂直軸に制限する

誰もがこのための回避策を考え出すことができますか?

ありがとうございます!

答えて

0

ない答えが、貧しい人々の代替:

あなたがあなた自身のデータティップレンダラ[エヘン]を作成することができますが、すべての点の位置をマッピングし、そこに各1に対して先端を描きました。

基本的には、チャート作成クラスの中にたくさんのコードを複製しています。

0

私は同じ問題を抱えていますが、縦棒グラフで作業しています。 backgroundElementsを使用して垂直gridLinesを有効にし、マウスが垂直グリッド線を通過したときに発生するマウスオーバーのグラフイベントリスナーを追加できると考えていました。 localXの値を使って、それを最も近いデータポイントと比較することができます。

ブライアン

2

私は最近、これと同様の問題に遭遇しても、あなたの問題に適用される解決策を考え出しました。私はステップLineChartを持っていて、ユーザーが定義されたデータポイントではなく、ライン上の任意の場所に移動したときにデータヒントを表示したかったのです。

あなたは、私はここでその問題のために書いたソリューションについて読むことができます:あなたは、あなたの問題に合うように少し私の解決策を修正する必要がありますFlex: Customizing data tip location and behavior in a LineChart

を:

ライン47であなたがMath.abs(last.y - mouseLoc.y) < 50チェックを削除することができます。これにより、マウスの垂直方向に50ピクセル以内の線にデータヒントが制限されます。

デフォルトのセグメントを使用していると仮定しています。データポイント間に直接線を描く線グラフです。そのグラフタイプで動作するように、指定されたx座標で線の値を計算するコードを変更する必要があります。私はすでにマウスの左に最も近いデータポイントを33〜41行目で見つけてlastに格納します。ただ、(マウスの1つ最も近くなります)次のデータポイントを取得し、マウスでの値を取得するには、このようなものを使用します。

var slope:Number = (nextPoint.y - last.y)/(nextPoint.x - last.x); 
var lineYAtMouse:Number = (slope * (last.x - mouseLoc.x)) + last.y; 
var lineValue:Array = line.localToData(new Point(mouseLoc.x, lineYAtMouse)); 

続いて72を介してライン69を置き換えます。

hitPoint.x = mouseLoc.x; 
hitPoint.y = lineYAtMouse; 
hitPoint.xValue = lineValue[0]; 
hitPoint.yValue = lineValue[1]; 

これらの変更をテストしていないため、バグや2がある可能性がありますが、一般的な考え方はあります。私はこれがまだ誰かに役立つかもしれないことを願っています。この質問はかなり古くなってきています。 :)

+0

+ 1-素晴らしい答え – Ryan

+0

サイトがダウンしています。ここにアーカイブされたバージョンがあります。 http://web.archive.org/web/20120623212953/http://instantdelay。com/2010/08/flex-customizing-data-tip-location-and-a-linechart – approxiblue

+0

@deshko私のホスティングを台無しにしました。今戻っているはずです。 – takteek

関連する問題