【发布时间】:2018-02-22 22:50:18
【问题描述】:
我有一个烛台图,显示价格,两个系列分别代表价格和数量。这一切正常,显示如下。
这些蜡烛的点宽使用_stockSeries["PointWidth"] = "0.6";设置
然后,我将新系列添加到同一图表区域,指示图表上的点,蜡烛宽度变为非常细。然后我必须将 PointWidth 设置为 ~15000 以使蜡烛具有合理的宽度。据我所知,这个数字似乎与图表上的任何内容都没有关系,并且比原来的 0.6 大很多。谁能解释这里发生了什么?
用于添加点的代码是
var genericPoints = new Series(name);
if (style != MarkerStyle.None)
genericPoints.MarkerStyle = style;
genericPoints.ChartType = SeriesChartType.FastPoint;
foreach (var price in points)
genericPoints.Points.AddXY(price.TimeStamp, price.Value);
_chart.Series.Add(genericPoints);
【问题讨论】:
-
听起来很奇怪。 PointWidth 从 0f 到 2f,所以你的数字没有意义。您是否使用 fastpoint 以外的其他类型进行了测试?你有多少分?
-
@TaW 是的,似乎所有图表类型都会发生这种情况。我也尝试过 Point、Line 和 FastLine。我要补充大约 20 点。如果我添加没有点的系列,那么它对蜡烛没有影响。如果我使用
PixelPointWidth,那么添加另一个系列不会影响蜡烛。 -
嗯,我无法复制。将 PointWidth 重置为合理的值,即低于
1。您可能还想尝试使用PixelPointWidthcust.property,请参阅here。你的 x 值看起来,嗯有点大。确定他们是正确的? -
@TaW
PixelPointWidth工作正常。 (我在上面提到过)。你知道我怎样才能得到图表区域的宽度吗?有ChartArea.Position,但我认为它的宽度为零,因为它设置为自动大小。我将尝试创建一个 SSCCE。 X 值是 ms 纪元时间 - 它们是正确的,只是还不够优雅。这是一项正在进行的工作。 :-) -
你可以通过调用 ToRectangleF 或者调用 sth 来获取它。就像之前的axisrescale一样。在匆忙的atm ..你可能想要Innerplotposition。请参阅here 了解我的几篇文章..
标签: c# winforms charts candlestick-chart