2016-03-11 1 views
0

Я создаю Dotnet высокую диаграмму, используя код:продолжить линию, опираясь на Dotnet highchart

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

Вы должны рассчитать эти данные указывает себя и обеспечить их как часть массива (ов) данных. – jlbriggs

+0

, так что нет возможности сделать это динамически? – Stuart

+0

Вы хотите, чтобы вы просто удерживали последнее значение и рисовали линию до конца? Или вы хотите, чтобы он продолжал установленный уклон до конца? В любом случае вам все равно нужно написать этот код самостоятельно, но один из них проще, чем другой – jlbriggs

ответ

2

Итак, нет - диаграмма не будет делать это автоматически, но мы можем сделать это сами достаточно легко.

1) получить окончательное у значения данных

2) извлекаемого окончательное х значение, которое вы хотите его продлить до

3) добавить новую точку к данным с теми х и у значения.

Пример функции:

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

+0

Благодарим вас за это. Хотя я не уверен, как реализовать его в своем собственном highchart – Stuart