gpt4 book ai didi

c# - IsXValueIndexed 导致图形线条无法绘制

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:21 26 4
gpt4 key购买 nike

所以有一个包含 2 个图表区域和 3 个系列的图表。顶部图表区域有 2 个系列。第一个系列显示随时间变化的价格,顶部图表区域中的第二个系列显示同一时间的每股 yield

底部图表区域有 1 个系列,同时显示交易量。

所有 3 个系列的分数相同。所有 3 个系列的 XValueType 都设置为 Date。

当数据为日线时股价周末有跳空并想打压。所以应该做的是将 IsXValueIndexed 设置为 true。如果我们这样做,图表会呈现,但在成交量图表的价格图表中都不会显示任何线条。

我的理解是,要使 IsXValueIndexed 正常工作,每个系列都必须具有相同数量的点,并且所有点都在 X 轴的同一点上具有相同的日期。他们这样做。

我还缺少什么?

最佳答案

对您描述的效果的唯一解释是您为 x 轴设置了 Maximum&Minimum 值。

MSDN:

Series.IsXValueIndexed

Gets or sets a flag that indicates whether data point indices will be used for the X-values

您的其他规则(关于例如系列对齐)是正确的,但是这个简单的陈述意味着实际的 x 值现在被忽略;它们仍然可以用于格式化标签和计算东西(见下文!),但是当涉及到沿轴的数据点布局时,它们都被索引 0,1,2..

因此,您为 XAxis.Minimum&Maximum 设置的任何值将不再按预期工作:您内部点中的 DateTimes巨大双倍;索引永远无法到达那里,除非您的日期是从 DateTime(0001 年 1 月 1 日)时间开始的。

您可以通过重置Minimum/Maximum 值来进行测试:

 Axis ax = someChartArea.AxisX;

ax.Minimum = double.NaN;
ax.Maximum = double.NaN;

但是如果你设置了它们,你可能需要它们。因此,您可能需要计算要使用的索引;这是一个例子:

Series s = yourSeries;

var p1 = s.Points.Where(x => x.XValue > ax.Minimum).First();
var p2 = s.Points.Where(x => x.XValue <= ax.Maximum).Last();

ax.Minimum = s.Points.IndexOf(p1);
ax.Maximum = s.Points.IndexOf(p2) + 1;

但也许一个更简单的方案会做得更好或更好。分页..

让我们看看:

enter image description here

关于c# - IsXValueIndexed 导致图形线条无法绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50768915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com