ZedGraphコントロールを使用して、Y 値が 13、34、および 55 のデータをプロットしているとします。
Y 軸を設定して、13、34、55 のテキスト ラベルのみが表示されるようにするにはどうすればよいですか (そして、グリッド線が同期されると思います)。
データの範囲 (0、25、50、75 など) に等間隔のラベルを配置したくありません。実際の値にラベルを付けるだけです。
箱から出して直接それが可能だとは思わない。
カスタム TextObj ラベルを使用して作成された貧弱な半分のソリューションを次に示します。
まず、古い軸スケールを無効にする必要があります。
zg1.MasterPane[0].YAxis.Scale.IsVisible = false;
zg1.MasterPane[0].YAxis.MajorTic.IsAllTics = false;
次に、カスタム ラベルを作成する必要があります。y_vals が Y 値の配列である場合:
foreach (double val in y_vals)
{
TextObj text = new TextObj(val.ToString(), zg1.MasterPane[0].XAxis.Scale.Min, val);
text.Location.AlignH = AlignH.Right;
text.FontSpec.Border.IsVisible = false;
text.FontSpec.Fill.IsVisible = false;
zg1.MasterPane[0].GraphObjList.Add(text);
}
LineObj を使用して、同じ方法でカスタム グリッド線を作成できます。これを foreach ループ内に追加するだけです。
LineObj line = new LineObj(zg1.MasterPane[0].XAxis.Scale.Min, val, zg1.MasterPane[0].XAxis.Scale.Max, val);
line.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
line.Line.Width = 1f;
zg1.MasterPane[0].GraphObjList.Add(line);