【问题标题】:continue the line drawing on dotnet highchart继续在 dotnet highchart 上画线
【发布时间】:2016-03-12 05:58:44
【问题描述】:

我正在使用代码创建一个 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) }
    })

输出: 我想知道如何使红线沿当前成本继续直到图表结束(传入的最后日期)。如果支出的日期晚于绿线,也对绿线执行相同的操作最后收货日期。希望人们知道我的意思。提前致谢

【问题讨论】:

  • 您必须自己计算这些数据点并将它们作为数据数组的一部分提供。
  • 那么就没有办法动态做了吗?
  • 你的意思是你想让它只保存最后一个值,然后画线直到结束吗?或者你想让它继续既定的坡度直到结束?无论哪种方式,您仍然需要自己编写该代码,但一个比另一个更容易
  • 是的,只保留最后一个值并画线直到结束
  • 好的,我把它误读为另一个选项。检查下面的答案以获取工作示例

标签: c# asp.net highcharts dotnethighcharts


【解决方案1】:

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

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

工作示例:

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

示例图片:

【讨论】:

  • 谢谢你。虽然我不确定如何将它实现到我自己的 highchart
  • 谢谢!只是添加 - 对于面积图,它是 var y = series.data[series.data.length - 1]; series.addPoint([x, y.low, y.high]);
猜你喜欢
  • 1970-01-01
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
相关资源
最近更新 更多