【问题标题】:ZedGraph (.NET) - Having axis labels for actual values onlyZedGraph (.NET) - 仅具有实际值的轴标签
【发布时间】:2009-05-25 15:13:26
【问题描述】:

使用ZedGraph 控件,假设我正在绘制 Y 值为 13、34 和 55 的数据。

如何设置我的 Y 轴,以便显示的唯一文本标签(我猜网格线会同步)是 13、34 和 55 的那些?

我不希望在我的数据范围内有规则间隔的标签(比如 0、25、50、75 ......)。只需标注实际值即可。

【问题讨论】:

标签: .net winforms controls graph zedgraph


【解决方案1】:

我认为直接开箱即用是不可能的。

这是使用自定义 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);

【讨论】:

  • 感谢您的回答。我以为这个问题早就死了:-)
  • 我是stackoverflow的新手,我正在寻找一些标有“zedgraph”标签的问题;)我后来注意到了发布日期;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2018-05-19
  • 2017-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多