グラフに26ポイントを追加し、それらをaからzにラベル付けします。グラフのポイントラベルを別の位置に移動し、矢印で接続します
ラベルを元の位置から近くの位置に移動するにはどうすればいいですか?矢印などの記号を使用してラベルと対応するポイントを接続する方法はありますか?デモチャートは、次のようになります。
グラフに26ポイントを追加し、それらをaからzにラベル付けします。グラフのポイントラベルを別の位置に移動し、矢印で接続します
ラベルを元の位置から近くの位置に移動するにはどうすればいいですか?矢印などの記号を使用してラベルと対応するポイントを接続する方法はありますか?デモチャートは、次のようになります。
DataPoint
Labels
はかなり自動的配置されていると、あなたはそれらの位置に影響を与えるだけの非常にいくつかのオプションがあります。
SmartLabels
がありますが、と重複しないようにする場合の動作の制御のみが可能です。
だから私はLabels
の代わりにAnnotationsに頼らなければならないと思います。あなたがそのDataPoint
に固定あなたがラベル付けたいDataPoint
につき1 LineAnnotationと1 TextAnnotationを、必要とするあなたのイメージを複製する
Infactは..:
はあなたがすることによってあなたのSeries S1
1にDataPoints
を追加していると仮定しましょう1つ:
int p = S1.Points.AddXY(yourXValue, yourYValue);
string s = yourLabelText;
DataPoint dp = S1.Points[p];
TextAnnotation
を作成するか、またはpr私はここに位置を設定する方法
RectangleAnnotation ta = new RectangleAnnotation();
ta.AnchorDataPoint = dp;
ta.AnchorOffsetX = 5; // *
ta.AnchorOffsetY = 3; // *
ta.AnchorAlignment = ContentAlignment.BottomLeft;
ta.Text = s;
chart1.Annotations.Add(ta);
注(*)まで少し、右の注釈を移動するには:TextAnnotation
のサブクラスは、バックグラウンドを可能にし、境界線を作成しているRectangleAnnotationを、ecise。数字はピクセルではありませんが、図のサイズの割合はです。あなたが好きな値を見つけるために少し実験する必要があります。アドバンテージは、グラフのサイズを変更したりズームしたりすると、距離が拡大されることです。
今、私たちは、矢印を追加します。
LineAnnotation la = new LineAnnotation();
la.SetAnchor(dp);
la.AnchorOffsetX = 0.5; // (**)
la.AnchorOffsetY = -0.5; // (**)
la.StartCap = LineAnchorCapStyle.Arrow;
la.Width = ta.AnchorOffsetX - la.AnchorOffsetX;
la.Height = - ta.AnchorOffsetY + la.AnchorOffsetY; // (***)
chart1.Annotations.Add(la);
(**)私は矢印がポイントの円を重ならない少しDataPoint
オフの開始点を移動します。
(***)高さはポイントから上を向ける必要があることに注意してください。
ラベルのある解決策を見つけるのに何時間もかかり、何も役に立たないことが分かりました。しかし注釈を付けると、それは魅力のように機能します。次回はもっと柔軟に考えるべきかもしれない。とにかくおかげさまで! – Dongyu