2013-05-10 2 views
1

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

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

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

ответ

2

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

Я нашел способ реализовать логарифмический масштаб в пользовательском интерфейсе 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». (Это царапина код, только ilustrate точки):

function formatLog2(format, value) { 

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

    value = Math.pow(10, value); 

    return kendo.format(format, value); 
} 

и DataSource преобразование:

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")) 

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

0

Нет, вы не можете сделать это в кендо графике

Смежные вопросы