【问题标题】:Adding a line segment to OHLC Zedgraph in C#在 C# 中向 OHLC Zedgraph 添加线段
【发布时间】:2014-04-22 17:16:48
【问题描述】:

我在 Zedgraph 中有一个 OHLC 股票价格图表。我想在这个图表上添加多个线段,我只知道起点和终点的值 - 所以基本上,我有一个(开始日期,价格)和一个(结束日期,价格)我想要的 2 个点的组合画一条线。

我尝试使用以下代码,但这会将所有线条添加到图表的开头,而与我提供的 x 轴值无关。

LineItem trendLine = new LineItem(String.Empty, new[] { pstartDate, pconfirmDate },   new[] { pstartPrice, pconfirmPrice }, System.Drawing.Color.Black, SymbolType.None);
trendLine.Line.Style = System.Drawing.Drawing2D.DashStyle.Solid;
trendLine.Line.Width = 1f;
pricePane.CurveList.Add(trendLine);

提前致谢。

新观察 - 我的 OHLC 图表当前启用了跨 X 轴的滚动和缩放。我正在使用 X 轴类型“DateAsOrdinal”。我观察到,如果我将 X 轴类型更改为“日期”,线段会按应有的方式显示,即在 X 轴的正确位置。但是现在滚动已经被禁用了,原来显示的数据现在只显示了一部分!

【问题讨论】:

  • 我想我想出了一个粗略的方法来解决这个问题。 DateAsOrdinal 轴类型在我要添加的行项目中不能缺少点。所以我不得不为不在线段内的所有点添加 Y 值 double.NAN 的“空”点。

标签: c# zedgraph


【解决方案1】:

对于趋势线,您应该使用 LineObj。

如果您的 XAxis 是 DateAsOrdinal,则 x 值必须是序数,而不是日期。

【讨论】:

  • 嗨 Bretddog,请您详细说明 LineItem 和 LineObj 之间的区别是什么?另外,当你说 x 值必须是序数时,会不会在开头或结尾处缺少 x 值?
  • LineItem:CurveItem 是一个连续图。 LineObj:GraphObj 只有两个数据点,那么显然没有值可以错过。通常,趋势线作为 LineObj 会更容易处理。但是知道两者,并使用方便的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
相关资源
最近更新 更多