2014-01-22 3 views
0

Кажется, я не могу заставить ряды баров появиться в легенде на моей карте. Обе линейные диаграммы отображаются в легенде ОК. У меня есть .D3 Диаграмма Легенда, бары не отображаются

Затем я хочу, чтобы пользователь мог нажимать на отдельные легенды, и эти строки/полосы появляются/исчезают из графика в качестве перехода, но не нашли примеров этого, кроме NVD3.js, который я не хотите использовать. Не могли бы вы указать мне пример, который вы можете знать, поэтому я могу учиться на нем.

Пожалуйста, нажмите на кнопку «Создать кнопку Chart первой, так что вы можете увидеть диаграмму, генерируемой

HTML кода:.!

<input id="clickMe1" type="button" value="Create Chart" onclick='createMainPerfChart()' /> 
<input id="clickMe2" type="button" value="Update Chart" onclick='updateMainPerfChart()' /> 
<div id="msg"></div> 
<div style="margin-top:120px;"> 
    <svg id="mainchart"></svg> 
</div> 

Спасибо

ответ

0

Вы должны изменить реализацию из легенды для этого. В частности, вам нужно прикрепить обработчик кликов, который на основе того, на какой круг нажата, затушевывает полосы и другую строку. Следующий код достигает этого.

.on("click", function(d) { 
       var op = d.hidden ? 1 : 0; 
       d3.selectAll("rect.bar").transition().attr("opacity", op); 
       if(d.key == "Cumulative Output") { 
        d3.select("path.TGTLine").transition().attr("opacity", op); 
       } else { 
        d3.select("path.CABLine").transition().attr("opacity", op); 
       } 
       d.hidden = !d.hidden; 
      }); 

Я сохраняю текущее состояние в .hidden здесь, чтобы узнать, следует ли затухать или исчезать. Полный пример here.

+0

Эй, Ларс, СПАСИБО !!! Пара вопросов: (1) Бары (синий круг) не отображаются в легенде, когда диаграмма создается/обновляется. (2) Я хочу удалить выбранную серию, а не другую серию (те, которые не были нажаты). Вы ЗВЕЗДА, и я поражен вашими постоянными учебниками! – TheRealPapa

+0

Хм, (1) кажется ошибкой в ​​реализации легенды, которую вы используете. Чтобы сделать (2), вам просто нужно отменить логику в обработчике кликов --http: //jsfiddle.net/E4av2/41/ –

+0

Привет Ларс, еще раз спасибо ... Интересно, если вы дважды щелкнете «создать график» , второй раз приносит бары синего круга в легенду ... У меня будет больше игры. СПАСИБО! – TheRealPapa

Смежные вопросы