2

rangebarchart の一連の yvalue ごとにラベルを追加するにはどうすればよいですか?

rangebartype series をプロットするには、yvalue[0] と yvalue[1] として 2 つの yvalues が必要であることをご存知でしょう。ここでは、これらの yvalues のそれぞれにデータ ラベルを追加する必要があります (これは、yvalue[0] と yvalue[1] の両方を意味します)。 )どうすればそれを実装できますか?誰かが私に提案できますか?お願いします!!

ラベルは、範囲バー (範囲バーの両側に表示される) の場合、次のようになります。

Label1 ███████████████ Label2

                    Label███████████████████ Label
4

1 に答える 1

2

MS チャートでこれを行う組み込みの方法はありません。ただし、必要な表示を提供するための醜い小さな回避策があります。

表示するデータポイント (範囲バー) ごとに、互いに重なる 2 つのデータポイントを作成する必要があります。例:
DataPoint0: X=1 Y=5,10
DataPoint1: X=1 Y=10,5

これらの 2 つのデータポイントは、1 つが左から右に表示され、もう 1 つが右から左に表示されることを除いて、互いに重なり合っています。
各 DataPoint の CustomProperties の下に、BarLabelStyle プロパティがあります。両方のデータポイントに対して、これを「外側」に設定します。通常、これはラベルを範囲バーの右側に表示しますが、DataPoint1 の場合、Y 値が逆になり、ラベルは範囲バーの左側に配置されます。したがって、DataPoint0 のラベルを 10 (最大値) に設定し、DataPoint1 のラベルを 5 (最小値) に設定します。

これは、左側に最小値、右側に最大値を持つ 1 つの範囲バーのように見えます。

注意: 範囲バーのいずれかの端がグラフの端に近すぎる場合、MS Chart はその無限の知恵により、ラベルを範囲バー内に強制的に表示します。これを克服するために、実際には DataPoint オブジェクトの Y 値に 3 番目の数値を追加できます。この 3 番目の値は表示されませんが、データ シリーズの最大の Y 値よりも大きい場合は、この大きな値に対応するようにグラフが強制的に再スケーリングされるため、ラベルが範囲バー内に強制されることはありません。ChartAreaのプロパティを設定することで、おそらくこれを別の方法で処理できます。

于 2010-03-11T23:11:33.460 に答える