1

ZedGraphコントロールを使用して、Y 値が 13、34、および 55 のデータをプロットしているとします。

Y 軸を設定して、13、34、55 のテキスト ラベルのみが表示されるようにするにはどうすればよいですか (そして、グリッド線が同期されると思います)。

データの範囲 (0、25、50、75 など) に等間隔のラベルを配置したくありません。実際の値にラベルを付けるだけです。

4

1 に答える 1

3

箱から出して直接それが可能だとは思わない。

カスタム 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);
于 2009-09-23T13:28:04.067 に答える