样条图表光滑的角落

时间:2016-06-28 15:12:39

标签: c# asp.net-charts

我在我的项目中使用.NET框架中的Chart控件。我已将图表控件添加到表单中,并按如下所示进行配置。

// Add a new series.
chart1.Series.Add("1");
var series = chart1.Series[0];
series.ChartType = SeriesChartType.Spline;
// Hide the legend.
series.IsVisibleInLegend = false;

// configure x axis.
var cArea = chart1.ChartAreas[0];
cArea.AxisX.IntervalType = DateTimeIntervalType.Number;

cArea.AxisX.LabelStyle.Format = "00";
cArea.AxisY.LabelStyle.Format = "0.000";
cArea.AxisY.LabelStyle.IsEndLabelVisible = true;

cArea.AxisX.Minimum = 0;
cArea.AxisX.Maximum = 100;
cArea.AxisX.Interval = 20;

cArea.AxisY.Minimum = 0;
cArea.AxisY.Maximum = 100;
cArea.AxisX.Interval = 20;

数据点值如下:

chart1.Series[0].Points.AddXY(0, 5);
chart1.Series[0].Points.AddXY(5, 10);
chart1.Series[0].Points.AddXY(10, 30);
chart1.Series[0].Points.AddXY(20, 100);
chart1.Series[0].Points.AddXY(30, 100);
chart1.Series[0].Points.AddXY(40, 90);
chart1.Series[0].Points.AddXY(50, 80);

对于上述数据点,系列不平滑。上边缘正在切割。参考附图。 enter image description here

如何使其平滑以使整条线可见?

2 个答案:

答案 0 :(得分:2)

由于平滑而无法看到,因此调整比例(例如使用cArea.AxisX.Maximum = 150;)或删除平滑以使整个曲线可见。

答案 1 :(得分:2)

DrawCurves GDI +方法一样,您可以控制样条线的张力,即它们与点及其连接线的距离以及它们创建的平滑程度。过多的“平滑”会创造出你所看到的梦幻般的顶部,也可以从数据中的小疙瘩中疯狂旋转......

通过LineTension自定义属性设置张力。

将其从默认的0.8降低到更小的值。测试看看你喜欢什么。

以下是Series S

的示例
S.SetCustomProperty("LineTension", "0.4");

请注意,你仍然应该使y轴最大一点,否则你可能需要将张力降低到0,这看起来像一个线型..

以下是一些变体:

enter image description here