我有一個場景,我需要以對數順序顯示a軸刻度。我做了一些搜索,發現這個選項不可用,但帖子差不多一年了。此功能是否在最新版本中提供?劍道圖中的對數軸刻度
這裏是劍道論壇,我看着
http://www.kendoui.com/forums/dataviz/chart/logarithmic-scale.aspx http://www.kendoui.com/forums/dataviz/chart/does-kendo-support-log-scale.aspx
我有一個場景,我需要以對數順序顯示a軸刻度。我做了一些搜索,發現這個選項不可用,但帖子差不多一年了。此功能是否在最新版本中提供?劍道圖中的對數軸刻度
這裏是劍道論壇,我看着
http://www.kendoui.com/forums/dataviz/chart/logarithmic-scale.aspx http://www.kendoui.com/forums/dataviz/chart/does-kendo-support-log-scale.aspx
我知道這是舊的文章,但我發現它試圖做這樣的事情。我找到了一個解決方法,它可能會幫助別人。
我找到了在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」。 (它是一個刮代碼,只是爲了ilustrate的點):
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"))
希望這有助於某人。
沒有鏈接,你可以這樣做,在劍道圖表