Шкала логарифмической оси в таблице кендо

У меня есть сценарий, в котором мне нужно, чтобы шкала оси а отображалась в логарифмическом порядке. Я немного поискал и обнаружил, что эта опция недоступна, но постам уже почти год. Предусмотрена ли эта функция в последних версиях?

Вот ссылки на форум кендо, которые я просматривал

http://www.kendoui.com/forums/dataviz/chart/logarithmic-scale.aspx http://www.kendoui.com/forums/dataviz/chart/does-kendo-support-log-scale.aspx


person Wasae Shoaib    schedule 10.05.2013    source источник


Ответы (3)


Я знаю, что это старый пост, но я обнаружил, что он пытается сделать что-то подобное. Я нашел обходной путь, и, возможно, это поможет кому-то.

Я нашел способ реализовать логарифмическую шкалу в пользовательском интерфейсе Kendo. По сути, идея состоит в том, чтобы преобразовать значения из логарифмической формы в линейную, затем связать данные с серией KendoUI («разбросанная линия» в моем случае) и заменить метки оси Y с помощью шаблона.

.YAxis(axis => axis
    .Numeric()
    .Title("BER (dB)")
    .Labels(l => l.Template("#= formatLog2('{0:0}', value) #"))
    .Reverse()
    .AxisCrossingValue(double.MaxValue)
.Tooltip(tooltip => tooltip
    .Visible(true)
    .Template("#= formatLog('{0:0.00000000000000}', value.y) #")

и функция JavaScript «formatLog2». (это скретч-код, просто для иллюстрации):

function formatLog2(format, value) {

    if (value < 0) value = value * -1;

    value = Math.pow(10, value);

    return kendo.format(format, value);
}

и преобразование источника данных:

using (IDatabase db = Database.Create())
using (DataTable dt = new DataTable())
{
    db.ExecuteQuery(dt, Query);

    List<UnavailabilityChartPoint> l = new List<UnavailabilityChartPoint>();

    foreach (DataRow r in dt.Rows)
    {
        l.Add(new UnavailabilityChartPoint(
        r.Field<DateTime>("Date"),
        Math.Log10(r.Field<double>("UnSignalMonthly"))
        ));
    }

    return Json(l);
}

важными частями являются линейное преобразование в журнал и преобразование журнала в линейное:

value = Math.pow(10, value);    
Math.Log10(r.Field<double>("UnSignalMonthly"))

Надеюсь, это поможет кому-то.

person Ansenagy    schedule 11.11.2013

Вот пример логарифмической шкалы.

http://demos.telerik.com/kendo-ui/bar-charts/logarithmic-axis

person Xavier John    schedule 20.03.2015

Нет, вы не можете сделать это в таблице кендо (по состоянию на 2013 год).

person ValGe    schedule 14.05.2013