[英]Dygraph: How to hide x,y value in legend?
在借助筆形圖庫生成軌道時,我設置了圖例:始終(即使沒有鼠標懸停,該圖例也會顯示具有該特定軌道上的系列名稱的圖例)。 但是,當我移到某個圖形時,圖例會發生變化,並在該特定的鼠標指針處顯示每個系列的值。 我不希望更改圖例,而應僅顯示系列名稱而不是值。 我正在使用javascript來實現我的應用。 有什么辦法做的一樣嗎?
一個可能足夠好的技巧是為每個軸提供一個自定義valueFormatter
函數,該函數僅返回一個空字符串:
axes: {x: {valueFormatter: function (x) {return ''}},
y: {valueFormatter: function (y) {return ''}},
y2: {valueFormatter: function (y2) {return ''}}
}
這樣可以防止顯示這些值,但仍會根據鼠標的位置在行樣本和“:”字符之間切換。
目前,沒有簡單的方法可以做到這一點。 最好的選擇是要么使用dygraphs的API自己生成圖例,要么在圖表上放置一個透明的div,以捕獲所有鼠標事件。
好! 這可能不是一個好方法,但是我找到了替代方法。 在dygraph.js中聲明了一個新的布爾變量,該變量檢查用戶是否希望在圖例上看到xy值。 在函數generateLegendHTML(在legend.js中定義)中使用此變量,我使控件始終進入第一個if循環。 這使得書形圖始終顯示靜態圖例。
您可以執行以下操作-
步驟0-添加一些必要的選項和標簽-
labelsDiv: document.getElementById("labels"),// in the dygraph options
<div id="labels"></div> <!-- Add this somewhere in your HTML-->
第1步 -聲明變量-
var defaultLabelHTML = undefined;
第2步 -使用drawCallback選項-
drawCallback: function(dygraph, is_initial){
if (is_initial)
{
defaultLabelHTML = document.getElementById("labels").innerHTML;
}
},
第3步 -使用highlightCallback選項-
function(e, x, pts, row)
{
document.getElementById("labels").innerHTML = defaultLabelHTML;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.