使用ZedGraph http://zedgraph.org控制,假设我正在绘制 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)