我C# charts用来显示/比较一些数据。我将图形比例尺更改为logarithmic(由于我的数据点具有巨大差异),但是由于logarithmic比例尺不支持zero值,因此在这种情况下,我只想添加一个空白点(或跳过数据点)。我已经尝试了以下方法,但是没有任何效果,并且崩溃了:
if (/*the point is zero*/)
{
// myChart.Series["mySeries"].Points.AddY(null);
// or
// myChart.Series["mySeries"].Points.AddY();
// or just skip the point
}
Run Code Online (Sandbox Code Playgroud)
是否可以添加一个空白点或仅跳过一个点?
我发现了两种解决问题的方法。
一种正在使用double.NaN(突然!):
if (myChart.ChartAreas[0].AxisY.IsLogarithmic && y == 0)
myChart.Series["mySeries"].Points.AddY(double.NaN);
// or ...Points.Add(double.NaN)
Run Code Online (Sandbox Code Playgroud)
就我而言,它不会因以下SeriesChartTypes 崩溃:
Column, Doughnut, FastPoint, Funnel, Kagi, Pie, Point, Polar, Pyramid, Radar, Renko, Spline, SplineArea, StackedBar, StackedColumn, ThreeLineBreak
Run Code Online (Sandbox Code Playgroud)
另一种方法是空点的内置概念:
if (myChart.ChartAreas[0].AxisY.IsLogarithmic && y == 0)
myChart.Series["mySeries"].Points.Add(new DataPoint { IsEmpty = true });
Run Code Online (Sandbox Code Playgroud)
就我而言,它不会因以下SeriesChartTypes 崩溃:
Area, Bar, Column, Doughnut, FastPoint, Funnel, Line, Pie, Point, Polar, Pyramid, Radar, Renko, Spline, SplineArea, StackedArea, StackedArea100, StackedBar, StackedBar100, StackedColumn, StackedColumn100, StepLine, ThreeLineBreak
Run Code Online (Sandbox Code Playgroud)
在第二个方法感觉就像是正确的(设计)之一。在第一次一个看起来像一个黑客,那不经意的时候出现工作。
| 归档时间: |
|
| 查看次数: |
1010 次 |
| 最近记录: |