Changeset 8002 for plugins_spip


Ignore:
Timestamp:
12/23/13 02:18:47 (6 years ago)
Author:
kent1
Message:

Les premières courbes de perspectives

Location:
plugins_spip/terraeco_infographie/trunk
Files:
9 added
2 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/terraeco_infographie/trunk/css/infographie.css

    r8000 r8002  
    185185}
    186186
     187path.line.perspective{
     188        stroke : #E9E4E3;
     189}
     190
     191path.area.perspective{
     192        fill:#F5F5F5;
     193}
     194
    187195.co2 path.line{
    188196        stroke:#327f75;
     
    194202}
    195203
    196 .birth-line line,.today-line line,.interaction line{
     204.birth-line line,.today-line line,.interaction line,.tomorrow-line line{
    197205        stroke :#e4e4e4;
    198206        stroke-width: 1px;
    199207}
    200208
    201 .birth-line line,.today-line line{
     209.birth-line line,.today-line line,.tomorrow-line line{
    202210        stroke-dasharray:10 10;
    203211}
     
    302310}
    303311
    304 .legende{
     312.legende_perspective{
     313        fill:#F29100;
     314}
     315
     316.co2 .legende_perspective{
     317        fill:#3E9B8B;
     318}
     319.legende,.legende_perspective_text{
    305320        font-family: "Lato","Arial Narrow","Lucida Sans Unicode", "Lucida Grande", sans-serif;
    306321        fill:#70706E;
    307322        font-size:14px;
     323}
     324
     325.legende_perspective_text{
     326        fill:#ffffff;
    308327}
    309328.infos_dots {
  • plugins_spip/terraeco_infographie/trunk/infographie.html

    r8001 r8002  
    9292                                        <div id="graph1" class="aGraph" style="position:relative;width:100%;"></div>
    9393                                        <script>
    94                                                 var containerid='graph1',infobox_class='infobox',values = [],values1 = [], values2 = [],values_commentaire= [], value_naissance = [], value_origine = [],container,tip,ligne_naissance_groupe,ligne_naissance,ligne_interactive;
     94                                                var containerid='graph1',infobox_class='infobox',
     95                                                        values = [],values1 = [],values2 = [], values_commentaire= [], value_naissance = [], value_origine = [],
     96                                                        values_perspective1_haute = [], values_perspective1_basse = [], values_perspective1_mediane = [],
     97                                                        values_perspective2_haute = [], values_perspective2_basse = [], values_perspective2_mediane = [],
     98                                                        tip,ligne_naissance_groupe,ligne_naissance,ligne_interactive;
     99                                               
    95100                                                var naissance = date_origine = [(#ENV{naissance,#GET{naissance_min}}|<{#GET{naissance_min}}|?{#GET{naissance_min},#ENV{naissance}}|intval)],
    96                                                         centre_origine = 1962,translate_defaut = 0;
     101                                                        centre_origine = 1962, translate_defaut = 0;
     102                                               
    97103                                                var margin = {top: 0, right: 5, bottom: 60, left: 5},
    98104                                                        graph_width = jQuery('#'+containerid).width() - margin.left - margin.right,
     
    101107                                                        vitesse = 200,
    102108                                                        infobox = tip = moving = infobox_bloquee = move_again = progress_mousedown = false;
     109
     110                                                // Scales and axes. Note the inverted domain for the y-scale: bigger is up!
     111                                                var x = d3.scale.linear(),
     112                                                        y = d3.scale.linear().range([height, 0]),
     113                                                        xAxis = d3.svg.axis().scale(x).ticks(50).tickFormat(d3.format(".0f")).orient("bottom");
     114                                               
     115                                                // Un générateur de lignes
     116                                                var line = d3.svg.line()
     117                                                        .x(function(d) { return x(d.axe_x); })
     118                                                        .y(function(d) { return y(d.axe_y); });
     119                                               
     120                                                // Un générateur de zones
     121                                                var area = d3.svg.area()
     122                                                        .x(function(d) { return x(d.axe_x); })
     123                                                        .y0(function(d) { return y(d.axe_y); })
     124                                                        .y1(function(d) { return y(d.axe_y1); });
    103125
    104126                                                jQuery('#'+containerid).on('mousewheel', function(event) {
     
    143165                                                // Avance le graph de 1 ou le recule de -1 (en année)
    144166                                                function graph_replace(valeur){
    145                                                         if(((valeur == '+1') && date_origine == values[values.length-1].axe_x) || ((valeur == '-1') && date_origine  == values[0].axe_x))
     167                                                        if(((valeur == '+1') && date_origine >= values2[values2.length-1].axe_x) || ((valeur == '-1') && date_origine  == values[0].axe_x))
    146168                                                                return false;
    147                                                        
     169                                                        if(date_origine >= values2[values2.length-1].axe_x)
     170                                                                return false;
    148171                                                        moving = true;
    149                                                        
    150172                                                        date_origine = date_origine+valeur;
    151173
     
    156178                                                        values.every(function(row, i){
    157179                                                                if(parseInt(row.axe_x) == date_origine){
    158                                                                         d = row;
     180                                                                        value_origine = d = row;
    159181                                                                        return false;
    160182                                                                }
     
    162184                                                        });
    163185                                                       
    164                                                         var translatex = x(value_origine.axe_x)-x(d.axe_x)-translate_defaut;
     186                                                        var translatex = x(value_naissance.axe_x)-x(d.axe_x)-translate_defaut;
    165187
    166188                                                        jQuery('.tooltip').text(+parseFloat(d.axe_y).toFixed(2)+'#UNITE');
     
    194216                                                                                move_again = false
    195217                                                                                graph_replace(valeur);
    196                                                                         }else{
    197                                                                                 move_again = false
    198                                                                                 moving = false;
    199                                                                         }
     218                                                                        }else
     219                                                                                move_again = moving = false;
    200220                                                                });
    201221
     
    230250                                                                        }
    231251                                                                       
    232                                                                         move_again = false
    233                                                                         moving = false;
     252                                                                        move_again = moving = false;
    234253                                                                       
    235254                                                                        if(texte_fin){
     
    239258                                                                                                        jQuery('.'+infobox_class+' .close_box').on('click',function(){
    240259                                                                                                                jQuery('.'+infobox_class).fadeOut();
     260                                                                                                                jQuery('#'+containerid).fadeOut(1000,function(){
     261                                                                                                                        jQuery('.tooltip').hide();
     262                                                                                                                        var callback = jQuery('#'+containerid).fadeIn(1000);
     263                                                                                                                        if(#ENV{donnees,1} == 1){
     264                                                                                                                                draw_perspectives_1(callback);
     265                                                                                                                        }else{
     266                                                                                                                                draw_perspectives_2(callback);
     267                                                                                                                        }
     268                                                                                                                });
    241269                                                                                                        });
    242270                                                                                                });
    243271                                                                                        });
    244272                                                                        }
     273                                                                       
    245274                                                                }
    246275                                                                setTimeout(show_info,vitesse);
     
    248277                                                }
    249278                                               
    250                                                 // Scales and axes. Note the inverted domain for the y-scale: bigger is up!
    251                                                 var x = d3.scale.linear(),
    252                                                         y = d3.scale.linear().range([height, 0]),
    253                                                         xAxis = d3.svg.axis().scale(x).ticks(56).tickFormat(d3.format(".0f")).orient("bottom");
    254                                                
    255                                                 // A line generator, for the dark stroke.
    256                                                 var line = d3.svg.line()
    257                                                         .x(function(d) { return x(d.axe_x); })
    258                                                         .y(function(d) { return y(d.axe_y); });
    259                                                
     279                                                function draw_perspectives_1(callback){
     280                                                       
     281                                                        d3.text("#CHEMIN{csv/perspective_temp_rcp85_original.csv}", function(datasetText) {
     282                                                                var parsedCSV = d3.csv.parseRows(datasetText);
     283                                                                // On ajoute la ligne de données pour la période aprÚs naissance
     284                                                                parsedCSV.forEach(function(row, i){
     285                                                                        new_row_haute = {};
     286                                                                        new_row_basse = {};
     287                                                                        new_row_mediane = {};
     288                                                                        new_row_haute.axe_x = new_row_basse.axe_x = new_row_mediane.axe_x = parseFloat(row[0]).toFixed();
     289                                                                        new_row_haute.axe_y = row[3];
     290                                                                        new_row_haute.axe_y1 = new_row_basse.axe_y = new_row_mediane.axe_y = row[2];
     291                                                                        new_row_basse.axe_y1 = row[1];
     292                                                                        values_perspective1_haute.push(new_row_haute);
     293                                                                        values.push(new_row_haute);
     294                                                                        values_perspective1_basse.push(new_row_basse);
     295                                                                        values_perspective1_mediane.push(new_row_mediane);
     296                                                                });
     297                                                                /**
     298                                                                 * xmax devient la date maximale
     299                                                                 */
     300                                                                xmax = values_perspective1_haute[values_perspective1_haute.length-1].axe_x;
     301                                                                ymax = values_perspective1_haute[values_perspective1_haute.length-1].axe_y;
     302                                                                ymax = (ymax-ymin)*1.25;
     303                                                               
     304                                                                /**
     305                                                                 * On change la taille du diagramme pour afficher :
     306                                                                 * - toute la perspective
     307                                                                 * - la date de naissance
     308                                                                 * - 7 années avant la date de naissance
     309                                                                 * - 3 années à la fin pour voir le "DEMAIN"
     310                                                                 */
     311                                                                real_width = (graph_width/(parseInt(values[values.length-1].axe_x)-naissance+10))*(xmax-xmin);
     312                                                               
     313                                                                x.range([0, real_width]).domain([xmin, xmax]);
     314                                                                y.domain([ymin, ymax]).nice();
     315                                                               
     316                                                                translate_defaut = x(value_origine.axe_x);
     317                                                                translate_new = x(value_naissance.axe_x-7);
     318                                                                /**
     319                                                                 * On parse la perspective basse
     320                                                                 */
     321                                                                d3.text("#CHEMIN{csv/perspective_temp_rcp26_original.csv}", function(datasetText) {
     322                                                                        var parsedCSV = d3.csv.parseRows(datasetText);
     323                                                                        // On ajoute la ligne de données pour la période aprÚs naissance
     324                                                                        parsedCSV.forEach(function(row, i){
     325                                                                                new_row_haute = {};
     326                                                                                new_row_basse = {};
     327                                                                                new_row_mediane = {};
     328                                                                                new_row_haute.axe_x = new_row_basse.axe_x = new_row_mediane.axe_x = parseFloat(row[0]).toFixed();
     329                                                                                new_row_haute.axe_y = row[3];
     330                                                                                new_row_haute.axe_y1 = new_row_basse.axe_y = new_row_mediane.axe_y = row[2];
     331                                                                                new_row_basse.axe_y1 = row[1];
     332                                                                                values_perspective2_haute.push(new_row_haute);
     333                                                                                values_perspective2_basse.push(new_row_basse);
     334                                                                                values_perspective2_mediane.push(new_row_mediane);
     335                                                                        });
     336                                                                       
     337                                                                        /**
     338                                                                         * On retrace les diagrammes
     339                                                                         */
     340                                                                        draw(translate_new);
     341                                                                        drawlines_interaction(translate_new);
     342                                                                       
     343                                                                        /**
     344                                                                         * On ajoute les perspectives
     345                                                                         */
     346                                                                        svg.selectAll('.paths').append("path")
     347                                                                                .attr("class", "area perspective perspective1_haute")
     348                                                                                .attr("d", area(values_perspective1_haute));
     349                                                                        svg.selectAll('.paths').append("path")
     350                                                                                        .attr("class", "area perspective perspective1_basse")
     351                                                                                        .attr("d", area(values_perspective1_basse));
     352                                                                        svg.selectAll('.paths').append("path")
     353                                                                                        .attr("class", "line perspective perspective1_mediane")
     354                                                                                        .attr("d", line(values_perspective1_mediane));
     355                                                                        svg.selectAll('.paths').append("path")
     356                                                                                        .attr("class", "area perspective perspective2_haute")
     357                                                                                        .attr("d", area(values_perspective2_haute));
     358                                                                        svg.selectAll('.paths').append("path")
     359                                                                                        .attr("class", "area perspective perspective2_basse")
     360                                                                                        .attr("d", area(values_perspective2_basse));
     361                                                                        svg.selectAll('.paths').append("path")
     362                                                                                        .attr("class", "line perspective perspective2_mediane")
     363                                                                                        .attr("d", line(values_perspective2_mediane));
     364                                                                        // Si on a donné une fonction comme callback => on l'exécute
     365                                                                        // Ajout du groupe pour Aujourd'hui
     366                                                                        ligne_demain_groupe = svg.select('.paths').append("g").attr("class", "tomorrow-line");
     367                       
     368                                                                        // Ajout de la ligne d'aujourd'hui
     369                                                                        ligne_demain = ligne_demain_groupe
     370                                                                                .datum(values[values.length-1])
     371                                                                                .append("line")
     372                                                                                        .attr( 'class', 'ligne_demain' )
     373                                                                                        .attr("x1", function( d ) { return x( d.axe_x ); })
     374                                                                                        .attr("x2",function( d ) { return x( d.axe_x ); })
     375                                                                                        .attr("y1",80).attr("y2", height);
     376               
     377                                                                        [(#SET{image_demain,[(#CHEMIN{images/demain_[(#CSS_CLASS).png]}|balise_img)]})]
     378                                                                        // Ajout de l'image de la bougie
     379                                                                        ligne_demain_groupe
     380                                                                                .datum(values[values.length-1])
     381                                                                                .append("svg:image")
     382                                                                                        .attr("xlink:href", "[(#GET{image_demain}|extraire_attribut{src})]")
     383                                                                                        .attr("x", function(d){
     384                                                                                                return x(d.axe_x)-[(#GET{image_demain}|extraire_attribut{width}|div{2})];
     385                                                                                        })
     386                                                                                        .attr("y", "2")
     387                                                                                        .attr("width", "[(#GET{image_demain}|extraire_attribut{width})]")
     388                                                                                        .attr("height", "[(#GET{image_demain}|extraire_attribut{height})]");
     389                                                                        var rectangle = svg.select('.paths').append("rect")
     390                                                                                .attr("class","legende_perspective")
     391                                                                                .attr("x", x(values2[values2.length-1].axe_x)+12)
     392                                                                                .attr("y", 390)
     393                                                                                .attr("width", x(values[values.length-1].axe_x)-x(values2[values2.length-1].axe_x)-20)
     394                                                                                .attr("height", 35);
     395                                                                        var text_rectangle = svg.select('.paths').append("text")
     396                                                                                .attr("x",x(values[values.length-1].axe_x)-20)
     397                                                                                .attr("y",410)
     398                                                                                .attr("class", "legende_perspective_text")
     399                                                                                .style("text-anchor", "end")
     400                                                                                .text("Estimations du National Climatic Data Center (NCDC)");
     401                                                                        var texte_fin = "<div class='close_box'><a href='#' onclick='return false;'>x</a></div><div class='contenu contenu_fin'>Le Groupe d’experts intergouvernemental sur l’évolution du climat (Giec) travaille sur les changements climatiques depuis 1988. Voici les deux scénarios extrêmes de ses estimations pour l'évolution des températures à la surface du globe entre 2012 et 2100.</div>";
     402                                                                                infobox_update(texte_fin,function(){
     403                                                                                        jQuery('.'+infobox_class).fadeIn(500);
     404                                                                                });
     405
     406                                                                        if(typeof(callback) == 'function') callback();
     407                                                                });
     408                                                        });
     409                                                       
     410                                                }
     411
     412                                                function draw_perspectives_2(callback){
     413                                                       
     414                                                        d3.text("#CHEMIN{csv/perspective_co2_rcp85_original.csv}", function(datasetText) {
     415                                                                var parsedCSV = d3.csv.parseRows(datasetText);
     416                                                                // On ajoute la ligne de données pour la période aprÚs naissance
     417                                                                parsedCSV.forEach(function(row, i){
     418                                                                        new_row_mediane = {};
     419                                                                        new_row_mediane.axe_x = parseFloat(row[0]).toFixed();
     420                                                                        new_row_mediane.axe_y = parseFloat(row[1]).toFixed(2);
     421                                                                        values.push(new_row_mediane);
     422                                                                        values_perspective1_mediane.push(new_row_mediane);
     423                                                                });
     424                                                                /**
     425                                                                 * xmax devient la date maximale
     426                                                                 */
     427                                                                xmax = values_perspective1_mediane[values_perspective1_mediane.length-1].axe_x;
     428                                                                ymax = d3.max(values_perspective1_mediane, function(d) { return parseFloat(d.axe_y).toFixed(2); })*1.25;
     429                                                               
     430                                                                /**
     431                                                                 * On change la taille du diagramme pour afficher :
     432                                                                 * - toute la perspective
     433                                                                 * - la date de naissance
     434                                                                 * - 7 années avant la date de naissance
     435                                                                 * - 3 années à la fin pour voir le "DEMAIN"
     436                                                                 */
     437                                                                real_width = (graph_width/(parseInt(values[values.length-1].axe_x)-naissance+10))*(xmax-xmin);
     438                                                               
     439                                                                x.range([0, real_width]).domain([xmin, xmax]);
     440                                                                y.domain([ymin, ymax]).nice();
     441                                                               
     442                                                                translate_defaut = x(value_origine.axe_x);
     443                                                                translate_new = x(value_naissance.axe_x-7);
     444                                                                /**
     445                                                                 * On parse la perspective basse
     446                                                                 */
     447                                                                d3.text("#CHEMIN{csv/perspective_co2_rcp3_original.csv}", function(datasetText) {
     448                                                                        var parsedCSV = d3.csv.parseRows(datasetText);
     449                                                                        // On ajoute la ligne de données pour la période aprÚs naissance
     450                                                                        parsedCSV.forEach(function(row, i){
     451                                                                                console.log(row);
     452                                                                                new_row_mediane = {};
     453                                                                                new_row_mediane.axe_x = parseFloat(row[0]).toFixed();
     454                                                                                new_row_mediane.axe_y = parseFloat(row[1]).toFixed(2);
     455                                                                                values_perspective2_mediane.push(new_row_mediane);
     456                                                                        });
     457                                                                       
     458                                                                        /**
     459                                                                         * On retrace les diagrammes
     460                                                                         */
     461                                                                        draw(translate_new);
     462                                                                        drawlines_interaction(translate_new);
     463                                                                       
     464                                                                        /**
     465                                                                         * On ajoute les perspectives
     466                                                                         */
     467                                                                        svg.selectAll('.paths').append("path")
     468                                                                                        .attr("class", "line perspective perspective1_mediane")
     469                                                                                        .attr("d", line(values_perspective1_mediane));
     470                                                                        svg.selectAll('.paths').append("path")
     471                                                                                        .attr("class", "line perspective perspective2_mediane")
     472                                                                                        .attr("d", line(values_perspective2_mediane));
     473                                                                        // Si on a donné une fonction comme callback => on l'exécute
     474                                                                        // Ajout du groupe pour Aujourd'hui
     475                                                                        ligne_demain_groupe = svg.select('.paths').append("g").attr("class", "tomorrow-line");
     476                       
     477                                                                        // Ajout de la ligne d'aujourd'hui
     478                                                                        ligne_demain = ligne_demain_groupe
     479                                                                                .datum(values[values.length-1])
     480                                                                                .append("line")
     481                                                                                        .attr( 'class', 'ligne_demain' )
     482                                                                                        .attr("x1", function( d ) { return x( d.axe_x ); })
     483                                                                                        .attr("x2",function( d ) { return x( d.axe_x ); })
     484                                                                                        .attr("y1",80).attr("y2", height);
     485               
     486                                                                        [(#SET{image_demain,[(#CHEMIN{images/demain_[(#CSS_CLASS).png]}|balise_img)]})]
     487                                                                        // Ajout de l'image de la bougie
     488                                                                        ligne_demain_groupe
     489                                                                                .datum(values[values.length-1])
     490                                                                                .append("svg:image")
     491                                                                                        .attr("xlink:href", "[(#GET{image_demain}|extraire_attribut{src})]")
     492                                                                                        .attr("x", function(d){
     493                                                                                                return x(d.axe_x)-[(#GET{image_demain}|extraire_attribut{width}|div{2})];
     494                                                                                        })
     495                                                                                        .attr("y", "2")
     496                                                                                        .attr("width", "[(#GET{image_demain}|extraire_attribut{width})]")
     497                                                                                        .attr("height", "[(#GET{image_demain}|extraire_attribut{height})]");
     498                                                                        var rectangle = svg.select('.paths').append("rect")
     499                                                                                .attr("class","legende_perspective")
     500                                                                                .attr("x", x(values2[values2.length-1].axe_x)+12)
     501                                                                                .attr("y", 390)
     502                                                                                .attr("width", x(values[values.length-1].axe_x)-x(values2[values2.length-1].axe_x)-20)
     503                                                                                .attr("height", 35);
     504                                                                        var text_rectangle = svg.select('.paths').append("text")
     505                                                                                .attr("x",x(values[values.length-1].axe_x)-20)
     506                                                                                .attr("y",410)
     507                                                                                .attr("class", "legende_perspective_text")
     508                                                                                .style("text-anchor", "end")
     509                                                                                .text("Estimations du National Climatic Data Center (NCDC)");
     510                                                                        var texte_fin = "<div class='close_box'><a href='#' onclick='return false;'>x</a></div><div class='contenu contenu_fin'>Le Groupe d’experts intergouvernemental sur l’évolution du climat (Giec) travaille sur les changements climatiques depuis 1988. Voici les deux scénarios extrêmes de ses estimations pour l'évolution des températures à la surface du globe entre 2012 et 2100.</div>";
     511                                                                                infobox_update(texte_fin,function(){
     512                                                                                        jQuery('.'+infobox_class).fadeIn(500);
     513                                                                                });
     514
     515                                                                        if(typeof(callback) == 'function') callback();
     516                                                                });
     517                                                        });
     518                                                       
     519                                                }
    260520                                                // Add an SVG element with the desired dimensions and margin.
    261521                                                var svg = d3.select("#"+containerid).append("svg")
     
    283543                                                                        jQuery('.'+infobox_class).fadeOut(500,function(){
    284544                                                                                infobox_bloquee = false;
    285                                                                                 infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin"><:terraeco:anecdote_scroll:></div>')
    286                                                                                 jQuery('.'+infobox_class).fadeIn(500);
     545                                                                                infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin"><:terraeco:anecdote_scroll:></div>',function(){
     546                                                                                        jQuery('.'+infobox_class).fadeIn(500);
     547                                                                                });
    287548                                                                        });
    288549                                                                }
    289                                                                 else
    290                                                                         jQuery('.'+infobox_class).fadeOut();
     550                                                                else jQuery('.'+infobox_class).fadeOut();
    291551                                                        }
    292552                                                });
     
    308568                                                                row.axe_x = parseFloat(row.axe_x).toFixed();
    309569                                                                origine = row.axe_y = parseFloat(row.axe_y.replace(',','.')).toFixed(2);
    310                                                                 if(row.axe_x <= naissance)
    311                                                                         values1.push(row);
    312                                                                 if(row.axe_x >= naissance)
    313                                                                         values2.push(row);
    314                                                                 if(row.axe_x == naissance)
    315                                                                         value_naissance = value_origine = row;
    316                                                                 if(typeof(row.commentaire) == 'string' && row.commentaire.length > 1)
    317                                                                         values_commentaire.push(row);
     570                                                                if(row.axe_x <= naissance) values1.push(row);
     571                                                                if(row.axe_x >= naissance) values2.push(row);
     572                                                                if(row.axe_x == naissance) value_naissance = value_origine = row;
     573                                                                if(typeof(row.commentaire) == 'string' && row.commentaire.length > 1) values_commentaire.push(row);
    318574                                                        });
    319575
     
    492748                                                 */
    493749                                                function draw(translatex){
    494                                                         d3.selectAll(".apresnaissance,.avtnaissance,.axis,.ligne_naissance,.texte_naissance,.circle_naissance,.infos_dots").remove();
     750                                                        d3.selectAll(".apresnaissance,.avtnaissance,.axis,.birth-line,.today-line,.ligne_naissance,.texte_naissance,.circle_naissance,.infos_dots,.legende").remove();
    495751                                                        d3.select(".paths")
    496752                                                                .attr("transform", "translate(-"+translatex+", 0)")
     
    593849                                                        // Ajout de la ligne d'aujourd'hui
    594850                                                        ligne_aujd = ligne_aujd_groupe
    595                                                                 .datum(values[values.length-1])
     851                                                                .datum(values2[values2.length-1])
    596852                                                                .append("line")
    597853                                                                        .attr( 'class', 'ligne_aujd' )
     
    603859                                                        // Ajout de l'image de la bougie
    604860                                                        ligne_aujd_groupe
    605                                                                 .datum(values[values.length-1])
     861                                                                .datum(values2[values2.length-1])
    606862                                                                .append("svg:image")
    607863                                                                        .attr("xlink:href", "[(#GET{image_aujd}|extraire_attribut{src})]")
     
    621877                                                 */
    622878                                                function drawlines_interaction(translatex){
     879                                                        d3.selectAll(".interaction").remove();
    623880                                                        ligne_interactive_groupe = svg.append("g")
    624881                                                                .attr("class", "interaction");
Note: See TracChangeset for help on using the changeset viewer.