可以创建ZedGraph垂直标记吗?

3

我想知道,在 zedgraph 中是否有可能创建垂直标记?
我希望显示所有图表点,同时使用垂直标记作为当前位置的指示器。

2个回答

4
在之前的项目中,我使用了以下代码来实现该效果。
int i = myPane.AddYAxis("");
myPane.YAxisList[i].Color = Color.Orange;
myPane.YAxisList[i].Scale.IsVisible = false;
myPane.YAxisList[i].MajorTic.IsAllTics = false;
myPane.YAxisList[i].MinorTic.IsAllTics = false;
myPane.YAxisList[i].Cross = pointOnXAxisThatIWantToMark;

在这个例子中,我添加了两个轴来标记图形上的特定限制。

enter image description here


请注意,如果您添加标签(axis.Title.Text =“…”),其中2行或以上会在Y轴左侧产生神秘的空白区域(每行增加一个空白区域)。但是,如果没有标签,则不会出现此问题。 - Curtis Yallop
请注意,在ZedGraph v2.0中,您可以在轴对象上设置刻度可见性和IsAllTics:yAxis.IsScaleVisible = false; yAxis.IsAllTics = false; 您还可以使用以下代码设置线条宽度:yAxis.TicPenWidth = 2; - salle55

1

您可以将曲线的SymbolType设置为SymbolType.VDash

例如,要设置LineItem的符号,您可以直接在构造函数中进行设置(源代码中的curve1),或者在分配给曲线之前进行自定义设置(curve2)。

以下是代码示例:

var curve1 = new LineItem(null, new[] { 0.1, 0.5, 0.9 }, 
             new[] { 0.8, 0.3, 0.1 }, Color.Blue, SymbolType.VDash);
zedGraphControl1.GraphPane.CurveList.Add(curve1);

var curve2 = new LineItem(String.Empty)
    {
        Points = new PointPairList(
                 new[] { 0.1, 0.5, 0.9 }, new[] { 0.2, 0.5, 0.9 }),
        Color = Color.Red,
        Symbol = new Symbol(SymbolType.VDash, Color.Black) 
                 { Size = 20f, Border = new Border(Color.Black, 6f)}
    };
zedGraphControl1.GraphPane.CurveList.Add(curve2);

生成以下图表:

Non-customized and customized markers


第一次我没有仔细阅读,使用了水平标记。希望垂直标记更符合您的要求。回答已相应更新。 - Anders Gustafsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接