我有一个HighChart如下:
class UserDAOTest extends PlaySpec with OneAppPerSuite with ScalaFutures {
implicit override lazy val app = new GuiceApplicationBuilder().
configure(
"slick.dbs.mydb.driver" -> "slick.driver.MySQLDriver$",
"slick.dbs.mydb.db.driver" -> "com.mysql.jdbc.Driver",
"slick.dbs.mydb.db.url" -> "jdbc:mysql://localhost:3306/control",
"slick.dbs.mydb.db.user" -> "root",
"slick.dbs.mydb.db.password" -> "xxxxx").build
def userDAO(implicit app: Application): UserDAO = Application.instanceCache[UserDAO].apply(app)
"UserDAO" should {
"do whatever" in {
whenReady(userDAO.read(1)) { res =>
println(res)
}
}
}
}
我使用过config:tooltip:{split:true}。
如果值为零,我想隐藏工具提示。
示例名称='a'的系列将隐藏第二个工具提示,但名称='b'仍会继续显示。
或者名称='b'的系列会隐藏第一个工具提示,但名称='a'仍会继续显示。
非常感谢!
答案 0 :(得分:2)
您可以包装Tooltip.prototype.renderSplit(points, labels)
方法,因此它不会为值等于0的点创建工具提示。
包装器可能如下所示(它只隐藏第一个值为0的点):
Highcharts.wrap(Highcharts.Tooltip.prototype, 'renderSplit', function (p, labels, points) {
var i = 0, len = points.length, point, label, modified = false;
for (; i < len; i++) {
if (points[i].y === 0) {
point = points.splice(i, 1)[0];
label = labels.splice(i + 1, 1)[0];
modified = true;
break;
}
}
p.call(this, labels, points);
if (modified) {
points.splice(i, 0, point);
labels.splice(i + 1, 0, label);
}
});
答案 1 :(得分:0)
要隐藏图表系列中所有 0
值的工具提示,您可以使用以下代码
Highcharts.wrap(Highcharts.Tooltip.prototype, 'renderSplit', function (p, labels, points) {
var modified = false;
if (modified== false){
var i = points.length;
while (i--) {
if (points[i].y == 0) {
points.splice(i, 1);
labels.splice(i+1, 1);
}
}
}
modified =true;
p.call(this, labels, points);
});
我还创建了 JSfiddle Demo
希望它能帮助其他希望从系列中删除所有零以隐藏工具提示的人。