如何将类别的标签调整为 KendoChart?
How to adjust the categories's labels into a KendoChart?
我一直在使用 kendochart 作为示例:http://jsfiddle.net/ericklanford/6dr0k59v/2/
类别轴定义为:
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
majorGridLines: {
visible: false
},
},
如果注意的话,很难看到categoryAxis下的标签。
有可能做这样的事情:
您所提议的图像不是开箱即用的(但可以通过一些黑客手段实现)。正式你有两个选择 - 旋转标签或跳过所有其他标签:
跳过所有其他标签
为此,您需要在配置标签时指定一个 step
值,如下所示:
// ...
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
labels: {
step: 2
},
majorGridLines: {
visible: false
},
}
// ...
旋转标签
这将防止它们重叠,因为它们会在侧面。这样它们就更容易阅读,同时您也不会错过所有其他标签。您需要将 rotation
值设置为 -90:
// ...
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
labels: {
rotation: -90
},
majorGridLines: {
visible: false
},
}
// ...
...和 hacky 方式
这不受官方支持,需要对渲染的 svg 图像进行一些操作。我们需要先稍微改变坐标轴的颜色,这样我们就可以通过颜色找到元素了:
// ...
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
color: "#000001",
majorGridLines: {
visible: false
},
}
// ...
然后我们将 运行 一个脚本,它将找到所有标签并将每个其他标签的 "y" 位置增加 8 个像素:
$(document).ready(createChart);
var axisLabels = $("#chart").find("text[fill='#000001']");
for(i = 0; i < axisLabels.length; i += 2){
$(axisLabels[i]).attr("y",parseInt($(axisLabels[i]).attr("y")) + 8);
}
这里是 fiddle:http://jsfiddle.net/4Lsownbp/
我一直在使用 kendochart 作为示例:http://jsfiddle.net/ericklanford/6dr0k59v/2/
类别轴定义为:
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
majorGridLines: {
visible: false
},
},
如果注意的话,很难看到categoryAxis下的标签。
有可能做这样的事情:
您所提议的图像不是开箱即用的(但可以通过一些黑客手段实现)。正式你有两个选择 - 旋转标签或跳过所有其他标签:
跳过所有其他标签
为此,您需要在配置标签时指定一个 step
值,如下所示:
// ...
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
labels: {
step: 2
},
majorGridLines: {
visible: false
},
}
// ...
旋转标签
这将防止它们重叠,因为它们会在侧面。这样它们就更容易阅读,同时您也不会错过所有其他标签。您需要将 rotation
值设置为 -90:
// ...
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
labels: {
rotation: -90
},
majorGridLines: {
visible: false
},
}
// ...
...和 hacky 方式
这不受官方支持,需要对渲染的 svg 图像进行一些操作。我们需要先稍微改变坐标轴的颜色,这样我们就可以通过颜色找到元素了:
// ...
categoryAxis: {
categories: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
color: "#000001",
majorGridLines: {
visible: false
},
}
// ...
然后我们将 运行 一个脚本,它将找到所有标签并将每个其他标签的 "y" 位置增加 8 个像素:
$(document).ready(createChart);
var axisLabels = $("#chart").find("text[fill='#000001']");
for(i = 0; i < axisLabels.length; i += 2){
$(axisLabels[i]).attr("y",parseInt($(axisLabels[i]).attr("y")) + 8);
}
这里是 fiddle:http://jsfiddle.net/4Lsownbp/