c# - 继续在 dotnet highchart 上画线

标签 c# asp.net highcharts dotnethighcharts

我正在使用代码创建一个 dotnet high 图表:

object[,] data1 = new object[Dt.Rows.Count, 2];
for (int i = 0; i < Dt.Rows.Count; i++)
{
    data1[i, 0] = Dt.Rows[i]["IncDate"];
    data1[i, 1] = Dt.Rows[i]["IncCost"];
}

object[,] data2 = new object[Dt2.Rows.Count, 2];
for (int i = 0; i < Dt2.Rows.Count; i++)
{
    data2[i, 0] = Dt2.Rows[i]["ExpDate"];
    data2[i, 1] = Dt2.Rows[i]["ExpCost"];
}

Highcharts chart = new Highcharts("graph")

    .SetTitle(new Title { Text = "Money Analysis" })
    .SetXAxis(new XAxis { Type = AxisTypes.Datetime })
    .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Amount (£)" } })
    .SetSeries(new[]
        {
        new Series { Name = "Incomings", Color = Color.LimeGreen, Data = new Data(data1) },
        new Series { Name = "Expenditures", Color = Color.Red, Data = new Data(data2) }
    })

输出: DotNet highchart 我想知道我如何能够使红线沿着当前成本继续直到图表结束(传入的最后日期)。如果支出的日期晚于,也对绿线做同样的事情最后进货日期。希望人们明白我的意思。提前致谢

最佳答案

所以,不 - 图表不会自动为您执行此操作,但我们可以自己轻松完成。

1) 检索数据的最终 y 值

2) 检索您希望它扩展到的最终 x 值

3) 使用这些 x 和 y 值向数据添加一个新点。

示例函数:

function extendData(series, axis) {
    var ext = axis.getExtremes();
    var x   = ext.dataMax;
    var y   = series.data[series.data.length -1].y;
    series.addPoint({'x':x, 'y':y, marker: { enabled: true }});
  }

工作示例:

并且只是为了展示一个使用任意数量系列的例子:

示例图片:

extend line

关于c# - 继续在 dotnet highchart 上画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949404/

相关文章:

c# - 保存同名文件

javascript - 验证两个文本框都应该被填充还是都应该为空

c# - NLog 不写调试消息

javascript - 当 highstock 的设置远高于数据系列时,如何在 highstock 上显示情节线?

c# - WPF 中的快速二维图形

c# - WinForm进入全屏模式

c# - 哪个更快 : Union or Concat?

javascript - bootstrap wysihtml5 设置值不起作用

javascript - Highcharts 渲染器 : fill colour of embedded SVG image

highcharts - 如何开发带有框注释的自定义图表,如附图所示