2012-12-05 6 views
3

Когда я создаю граф StackedColumns в dojo, всплывающие подсказки по умолчанию показывают кумулятивное значение. Я хотел бы показать индивидуальное значение (или, возможно, и то, и другое).Подсказки Dojo StackedColumn

В моем опыте, когда у меня есть серия с первым значением: 2, а другая с первым значением: 5, всплывающая подсказка показывает 7 при наведении курсора на вторую серию. Я бы хотел, чтобы он все еще показывал 5 (или, возможно, «значение: 5, кумулятивное значение: 7»).

Я нашел следующее Q & Очень полезно. Пример Phillipes jsFiddle работал на StackedArea, но мне не удалось заставить его работать с StackedColumns. Dojo StackedAreas chart doesn't accept objects as values

Цените любую помощь.

Вот мой код:

require(["dojox/charting/Chart", "dojox/charting/axis2d/Default", "dojox/charting/plot2d/StackedColumns", "dojox/charting/action2d/Tooltip", "dojox/charting/action2d/Highlight", "dojox/charting/action2d/Magnify", "dojox/charting/widget/SelectableLegend", "dojo/ready"], 
    function(Chart, Default, StackedColumns, Tooltip, Highlight, Magnify, SelectableLegend, ready){ 
    ready(function(){ 
     var chart1 = new dojox.charting.Chart("chart1"); 
     chart1.addPlot("default",{type: "StackedColumns", gap: 2}); 
     chart1.addAxis("x"); 
     chart1.addAxis("y", {vertical: true, includeZero: true});  
     chart1.addSeries("A", [2,3,5,7,2,4,6], {plot: "default", fill: "blue", stroke: {color: "blue"}}); 
     chart1.addSeries("C", [5,4,2,7,5,3,1], {plot: "default", fill: "green", stroke: {color: "green"}}); 

     var tooltip = new Tooltip(chart1, "default", { 
     text : function(point) { 
      console.debug(point); 
      return "This is " + point.y;   
     }    
     }); 

     chart1.render(); 
     var clusteredColumnsLegend = new SelectableLegend({chart: chart1}, "chart1Legend"); 

    }); 
    }); 

Я создал новый jsFiddle @http://jsfiddle.net/Tony_D/CqNhB/5/

ответ

3

Это может возможно рассматриваться как ошибка, то сказал, что это очень легко обойти просто изменить функцию подсказки по:

var tooltip = new Tooltip(chart1, "default", {   
    text : function(point) { 
    console.debug(point); 
    return "This is " + point.run.data[point.index];   
    } 
}); 
+0

Thanks Christophe. Работает как шарм. Хотя, честно говоря, я не понимаю, что такое «точка». Это объект dojo или js? Любые идеи, где я мог бы найти какую-то документацию. У вас был быстрый взгляд и явился пустым (поскольку я не уверен, что искать). Еще раз спасибо. – Tony

+0

Ну, я сохранил название «point», потому что у вас уже было это, но на самом деле это «объект события», который содержит несколько интересных сведений о том, как вы парируете. К сожалению, я не уверен, что есть документ об этом, вы можете посмотреть исходный код графика, чтобы увидеть, что вы можете найти там. – Christophe