wa0x6e / cal-heatmap

Cal-Heatmap is a javascript charting library to create a time-series calendar heatmap
http://cal-heatmap.com
MIT License
2.69k stars 290 forks source link

get other info from source data #443

Open jacksalici opened 8 months ago

jacksalici commented 8 months ago

Hello, and thank you for this awesome work! I would like to know about the possibility of using data for every row other than the values itself. For instance, when the source is a CSV, I'd like to get all the dict of the single row and use the data of other columns in places like the tooltip or the subdomain text... Is there a way to achieve this? Thank you in advance.

wa0x6e commented 8 months ago

Can you elaborate more with an example of csv content?

jacksalici commented 8 months ago

Sure, thank you for the interest.

Let's suppose to have the next table like a CSV: date distance location
2024-1-1 100 "Italy"

Is it possible to get the "location" value in the tooltip and or in the subdomain label? Let me show you an example with code...

const cal = new CalHeatmap();
cal.paint(
  {
    data: {
      source: 'my.csv',
      type: 'csv',
      x: 'date',
      y: d => +d['distance'], //the y value is for the distance
      groupY: 'max',
    },
    date: { start: new Date('2024-01-01') },

    subDomain: { 
         type: 'day', 
         radius: 2, 
         label: (t, v) => {return v['location']} //<= this not works, but i'd like to achieve something like this, where v is the dict of the entire row not only the y value...

     },
    itemSelector: '#ex-year',
  },

I have looked in the docs and I found nothing, I was wondering if there could be some workarounds...

Hope this is a bit clearer, thank you in advance.

wa0x6e commented 8 months ago

I see, it’s not possible at the moment, but seems like a good feature to add, will add to todo list