所以有一个包含2个图表区域和3个系列的图表。顶部图表区域有2个系列。第一个系列显示了一段时间内的价格,顶部图表区域中的第二个系列显示了同一时间的每股收益
底部图表区域有1个系列,它同时显示音量。
所有3个系列都有相同的积分。所有3系列XValueType都设置为日期。
当数据是每日股票价格时,周末存在缺口并且想要抑制。所以应该这样做是将IsXValueIndexed设置为true。如果我们这样做,图表会呈现,但是没有一条线显示在体积图的价格图表中。
我的理解是IsXValueIndexed工作每个系列必须具有相同数量的点,所有点在X轴的同一点具有相同的日期。他们这样做。
我还能错过什么?
答案 0 :(得分:0)
您描述的效果的唯一解释是您为x轴设置了0,1,2..
值。
MSDN:
<强> Series.IsXValueIndexed 强>
获取或设置一个标志,指示数据点索引是否为 用于X值
你有其他规则(例如关于系列对齐),但这个简单的陈述暗示实际x值现在被忽视;它们仍然可以用于格式化标签和计算内容(见下文!),但是当涉及沿轴的数据点布局时,它们全部被索引XAxis.Minimum&Maximum
因此,您为DateTimes
设置的任何值都将无法按预期工作:内部点DateTime
巨大加倍;除非您的日期是Minimum/Maximum
(0001年1月1日)时间的开始,否则索引无法到达那里。
您可以通过重置 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;
但是如果你设置了它们,你可能需要它们。所以你可能需要计算要使用的指数;这是一个例子:
position: relative;
但也许一个更简单的方案可以做得更好或更好。寻呼..
让我们来看看: