2

BarChart の右側に配置されている AxisRenderer を使用しており、その上の AxisRenderer の値のタイトルを配置する方法を探しています。

軸レンダラーでラベルの位置を見つけるにはどうすればよいですか? AxisRenderer.width はチャートの幅を返し、AxisRenderer.x はチャート全体の端を返すようです。

写真の試みは次のとおりです。

                                Title
xxxxxxxxxxxxxxxxxxxxx   
xxxxxxxxxxxxxxxxxxxxx           axis value
xxxxxxxxxxxxxxxxxxxxx   

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  axis value
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  

xxxxxxxxx   
xxxxxxxxx                       axis value
xxxxxxxxx   

AxisRenderer によって配置された「軸の値」の上にタイトルを配置しようとしています。基本的に、絶対配置されていない軸の場合、それがどこにあるかをどのように判断しますか?

4

5 に答える 5

3

私はこの問題を少し掘り下げましたが、おそらくあなたと同じ結論に達しました-これを行う簡単な方法はありません. 私の経験では、AxisRenderers の内部は非常に複雑です (特にわかりやすい方法で書かれていません)。

ただし、達成したいことを達成するために、独自の IAxisRenderer を作成して、必要なものを正確に構築することができます (これは悪夢です... 私はそれをやりましたが、苦痛でした)。また、AxisRenderer を拡張して、ビルドされた titleRenderer に配置する特定のメソッドをオーバーライドしようとすることもできます (私の意見では、AxisRenderer は拡張を考慮してビルドされていないため、これは特に簡単でもクリーンでもありません)。

膨大な時間を節約する 2 つの簡単なソリューション。適切に見える場所にタイトルの位置をハードコーディングします。明らかに私はそこに仮定を置いていますが、ほとんどの場合、軸ラベルはそれほど頻繁には変更されないと思います。私の意見では、最も簡単な解決策は... デザインを変更することです。希望どおりのタイトルを正確に取得するには、おそらくかなりの時間がかかるでしょう。そこから得られる価値が、あなたが費やしている努力に見合う価値があるかどうかを自問する必要があります。

申し訳ありませんが、私はこれ以上お手伝いできません。

J

于 2009-07-21T08:28:14.670 に答える
2

上記の提案に似たものを使用して、右に配置された AxisRenderer の目的の x と幅を計算できました。私の場合、CartesianDataCanvas の代わりに GridLines を使用し、左右両方の垂直 AxisRenderer も使用しました。

UPDATE_COMPLETE イベントのイベント リスナーを垂直方向の AxisRenderers に追加します。右の AxisRenderer の幅を計算します。

var rightGutterWidth:Number = chart.width - gridLines.width - Math.abs(leftAxisRenderer.gutters.width);

あなたの場合の X ラベルの位置については、次のようなことができます。

var rightGutterX:Number =chart.x + gridLines.width + Math.abs(leftAxisRenderer.gutters.width);

于 2010-03-09T21:16:36.517 に答える
1

CarthesianDataCanvas を Chart に使用してこれを調べます。

<Chart>
    <mx:annotationElements>
        <mx:CartesianDataCanvas id="canvas" includeInRanges="true"/>
    </mx:annotationElements>
</Chart>

Adobe のドキュメントを参照してください: http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_06.html -> チャートでのイベントと効果の使用 -> チャート コントロールでの描画

于 2010-02-05T11:47:08.513 に答える
1

個人的には、 flex-charting のソースがありません。おそらくすでにこれを行っていると思いますが、flex のソースを調べて何がわかるでしょうか?

それ以外の場合は、グラフの各バーの値と軸の目盛りがわかっているため、テキストを配置する位置を理論的に計算できますか?

于 2009-07-20T21:54:17.800 に答える
0

データ ラベルに関する Adob​​e のチュートリアルをご覧ください。

グラフへのデータ ラベルの追加

これはあなたが探しているものですか、それとも私はあなたの質問を誤解しましたか?

于 2009-07-17T19:52:17.057 に答える