我创建了一个带有flot的简单圆环图。但是,如果我使用默认设置,则不会显示标签(即使我指定" show:true")。只有当我隐藏图例时,才会显示标签,但图表本身会消失。我错过了什么或者这是flot库中的错误吗?
这是我的代码:
var data = [
{label: "A", data: 373, color: "red"},
{label: "B", data: 84, color: "blue"},
{label: "C", data: 73, color: "green"}
];
$.plot("#chart", data, {
series: {
pie: {
innerRadius: 0.75,
show: true,
}
},
label: {
show: true,
},
legend: {
show: false
}
});
答案 0 :(得分:2)
查看饼图插件代码,图例可见性控制标签可见性,如果pie.radius
设置为auto
,则标签可见性又控制图表的半径(如果是.75
则为默认值尚未明确设置 - 以下适用的代码。
您碰巧选择innerRadius
作为图表的radius
,这是插件在此情况下设置为半径的内容。当innerRadius
和// set labels.show
if (options.series.pie.label.show == "auto") {
if (options.legend.show) {
options.series.pie.label.show = false;
} else {
options.series.pie.label.show = true;
}
}
// set radius
if (options.series.pie.radius == "auto") {
if (options.series.pie.label.show) {
options.series.pie.radius = 3/4;
} else {
options.series.pie.radius = 1;
}
}
相等时,就会出现您正在描述的消失现象。
innerRadius
为什么插件以这种方式编写?我不确定 - 但您可以通过在关闭图例时将.75
设置为innerRadius
以外的其他内容,或同时指定radius
来解决此问题和$(function() {
var data = [{
label: "A",
data: 373,
color: "red"
}, {
label: "B",
data: 84,
color: "blue"
}, {
label: "C",
data: 73,
color: "green"
}];
$.plot("#chart", data, {
series: {
pie: {
innerRadius: 0.5,
radius: .75,
show: true,
}
},
label: {
show: true,
},
legend: {
show: false
}
});
});
属性:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.pie.min.js"></script>
<div id="chart" style="width: 600px; height: 300px;"></div>
&#13;
var id = $(this).attr('id'); // Id of the current selection
var current = 0; // Array index of the current item
getTpl() // Get and load lightbox template
.then(getData) // Get JSON data of the selected item
.then(getItem) // Pass JSON data and get the item
.then(loadItem)
&#13;