我有一个场景,我需要以对数顺序显示a轴刻度。我做了一点搜索,发现这个选项不可用,但帖子已经差不多一年了。最新版本中是否提供了此功能?
以下是我查看过的剑道论坛的链接
http://www.kendoui.com/forums/dataviz/chart/logarithmic-scale.aspx http://www.kendoui.com/forums/dataviz/chart/does-kendo-support-log-scale.aspx
答案 0 :(得分:2)
我知道这是一个老帖子,但我发现它试图做这样的事情。我找到了一个解决方法,它可能对某人有帮助。
我找到了一种在Kendo UI中实现对数比例的方法。基本上,这个想法是将值从对数形式转换为线性形式,然后使用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);
}
和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"))
希望这有助于某人。
答案 1 :(得分:0)
不,你不能在剑道图表中这样做
答案 2 :(得分:0)