簡體   English   中英

Dygraph:如何在圖例中隱藏x,y值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM