样条图圆角
Spline chart smooth corners
我在我的项目中使用 .NET Framework 中的 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);
对于以上数据点,序列并不平滑。上边缘被切割。请参阅附图。
如何让它平滑,使整条线都可见?
不可见因为平滑,调整比例(例如使用cArea.AxisX.Maximum = 150;
)或移除平滑以使整个曲线可见。
与 DrawCurves
GDI+ 方法一样,您可以控制样条曲线的 张力,即它们与点及其连接线的接近程度以及平滑程度他们创造。太多 'smoothing' 会产生您看到的梦幻般的顶部,甚至还会从数据中的小颠簸中产生疯狂的漩涡..
通过 LineTension 自定义属性设置张力。
将它从默认值 0.8
降低到更小的值。测试看看你喜欢什么。
这里有一个 Series S
的例子:
S.SetCustomProperty("LineTension", "0.4");
请注意,您仍然应该将 y 轴的最大值设置得大一点,否则您可能需要将张力降低到 0
,这看起来像一个线型..
这里有一些变化:
我在我的项目中使用 .NET Framework 中的 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);
对于以上数据点,序列并不平滑。上边缘被切割。请参阅附图。
如何让它平滑,使整条线都可见?
不可见因为平滑,调整比例(例如使用cArea.AxisX.Maximum = 150;
)或移除平滑以使整个曲线可见。
与 DrawCurves
GDI+ 方法一样,您可以控制样条曲线的 张力,即它们与点及其连接线的接近程度以及平滑程度他们创造。太多 'smoothing' 会产生您看到的梦幻般的顶部,甚至还会从数据中的小颠簸中产生疯狂的漩涡..
通过 LineTension 自定义属性设置张力。
将它从默认值 0.8
降低到更小的值。测试看看你喜欢什么。
这里有一个 Series S
的例子:
S.SetCustomProperty("LineTension", "0.4");
请注意,您仍然应该将 y 轴的最大值设置得大一点,否则您可能需要将张力降低到 0
,这看起来像一个线型..
这里有一些变化: