【问题标题】:Spline chart smooth corners样条图平滑角
【发布时间】:2016-06-28 15:12:38
【问题描述】:

我在我的项目中使用来自 .NET 框架的图表控件。我已经在表单中添加了图表控件并配置如下。

// 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);

对于上述数据点,序列不是平滑的。上边缘被切割。参考附图。

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

【问题讨论】:

  • 将 YAxis 最大值设置得高一点...

标签: c# asp.net-charts


【解决方案1】:

它不可见因为平滑,调整比例(例如使用cArea.AxisX.Maximum = 150;)或移除平滑以使整个曲线可见。

【讨论】:

    【解决方案2】:

    DrawCurves GDI+ 方法一样,您可以控制样条线的张力,即它们与点及其连接线的接近程度以及它们创建的平滑程度。太多的“平滑”会产生你所看到的幻想顶部,甚至数据中的小颠簸也会产生疯狂的漩涡。..

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

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

    这是Series S 的示例:

    S.SetCustomProperty("LineTension", "0.4");
    

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

    这里有一些变化:

    【讨论】:

    • 我不知道 LineTension 属性。感谢那。实际上增加 y 轴的最大值对我来说是一个更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2014-01-12
    • 2018-12-21
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多