2017-06-07 3 views
0

J'utilise ce code pour personnaliser une info-bulle sur un diagramme de dispersion xy multiligne. Comment est-ce que je modifierais l'info-bulle afin que chaque série ait son propre label unique, nameArr, nameArr1, nameArr2 ...? JSFiddleInfo-bulle personnalisée pour les séries multiples xy

tooltip: { 
    format: { 
     title: function(x) { 
      var indOfVal = engagmentArr.indexOf(x); 
      return nameArr[indOfVal - 1] 
     }, 
     name:function(){ 
     return engagmentArr[0]; 
     } 
    }, 
}, 
+0

pourriez-vous jsFiddle d'installation ou codepen? –

+0

Voici l'url jsfiddle [jsfiddle] (https://jsfiddle.net/laguna92651/t1aLbc0d/) – user8038235

Répondre

0

solution générale est de stocker infobulles séparément du tableau de points lui-même.

et d'y accéder par id groupe et index de données:

var tooltips = { 
    mention1: ['ROA=5.1%','ROA=8.1%','ROA=4.1%','ROA=10.1%'], 
    mention2: ['ROA=5.1%','ROA=8.1%','ROA=4.1%','ROA=10.1%'], 
    mention3: ['2000 ROA=2.2%','2001 ROA=8.2%','2002 ROA=5.2%','2005 ROA=12.2%'], 
    mention4: ['2000 ROA=2.2%','2001 ROA=8.2%','2002 ROA=5.2%','2005 ROA=12.2%'] 
} 

var chart = c3.generate({ 
    data: { 
     xs: { 
      mention1: 'engagement1', 
      mention2: 'engagement2', 
      mention3: 'engagement3', 
      mention4: 'engagement4' 
     }, 

     columns: [ 
      ['engagement1', 140, 150, 157, 220], 
      ['mention1', 2237, 4456, 3300, 1453], 
      ['engagement2', 40, 50, 57, 120], 
      ['mention2', 2237, 4456, 3300, 1453], 
      ['engagement3', 150, 155, 165, 230], 
      ['mention3', 2037, 4756, 3100, 1053], 
      ['engagement4', 50, 55, 65, 130], 
      ['mention4', 2037, 4756, 3100, 1053] 
     ], 
     type: 'scatter' 
    }, 
    point: { 
     r: function(d) { 
      return d.value * 0.005; 
     }, 
    }, 
    tooltip: { 
     contents: function (d) { 
      var id = d[0].id;     // 'mention1', 'mention2' ... 
      var index = d[0].index;    // 1,2,3,4 ... 

      // replace plain data with custom markup or copy c3's default 
      return tooltips[id][index];   // 'ROA=...' 
     } 
    } 
}); 

Voir fiddle

+0

A travaillé super, merci. Le premier ensemble de données fonctionne bien lorsque je remplace la mention: données codées en dur avec des variables ** Data1 **, ** Data2 ** et ** Data3 **, mais quand je remplace la mention2: données codées en dur avec ** Data4 **, ** Data5 ** et ** Data6 **, les pauses de code, des pensées? Les variables ** Data1 ** sont générées dans une base de données Filemaker. J'ai mis à jour mon jsfiddle pour montrer ** le placement de Datan **. Si je ne fais que remplacer la mention2 et laisser la mention codée en dur, elle se casse toujours. – user8038235

+0

Pouvez-vous donner un lien vers le violon mis à jour? Le lien précédent semble contenir du vieux code. –

+0

[JSFiddle] (https://jsfiddle.net/laguna92651/t1aLbc0d/) Les sources de données externes qui ne fonctionnent pas sont commentées, merci. @Dmitry – user8038235