Dear Vega/vaga lite experts,
How can I show all series data for the vega/vaga lite tooltip like tsvb (just like the following graph)?
Thanks for ur help in advance!
Thanks,
Roy
Dear Vega/vaga lite experts,
How can I show all series data for the vega/vaga lite tooltip like tsvb (just like the following graph)?
Thanks for ur help in advance!
Thanks,
Roy
Hi Roy- this is not the default behavior of Vega or Vega-Lite when using the tooltip plugin, so it will require more configuration from your side to get this. The main reason is that the tooltip plugin is operating on a single row in the data at a time, and usually each row is a single point in a series. So you basically have two options for how to make this work:
This is getting into some highly custom logic though, so it will be difficult to help you other than generic advice like the kind I'm giving above.
Thx Dear @wylie.
Regarding first option, yes, I am using the first option as I am using term to generate multiple series. Is there any example for the first option?
The following is my vega lite code, but the tooltip only show one series data.
Could u pls kindly help to have a look if possible? Thanks in advance!
  transform: [
    {
      flatten: [
        my_date_histo.buckets
      ]
      as: [
        buckets
      ]
    }
  ]
  // "encoding" tells the "mark" what data to use and in what way.  See https://vega.github.io/vega-lite/docs/encoding.html
  encoding: {
    x: {
      // The "key" value is the timestamp in milliseconds.  Use it for X axis.
      field: buckets.key
      type: temporal
      axis: {
        title: false
      } // Customize X axis format
    }
    y: {
      // The "doc_count" is the count per bucket.  Use it for Y axis.
      field: buckets.the_movfn.value
      type: quantitative
      axis: {
        title: false
      }
    }
    color: {
      field: key
      type: nominal
      title: false
    }
    tooltip: [
      /*{
        field: buckets.key
        type: temporal
        title: TimeStamp
      }*/
      {
        field: key
        type: nominal
        title: Instance
      }
      {
        field: buckets.the_movfn.value
        type: quantitative
        title: value
      }
    ]
  }
  layer: [{
    mark: area
  }, {
    mark: point
    selection: {
      pointhover: {
        type: single
        on: mouseover
        clear: mouseout
        empty: none
        fields: ["buckets.key", "key"]
        nearest: true
      }
    }
    encoding: {
      size: {
        condition: {
          selection: pointhover
          value: 100
        }
        value: 5
      }
      fill: {
        condition: {
          selection: pointhover
          value: white
        }
      }
    }
  }]
}
transform: [
    {
      flatten: [
        my_date_histo.buckets
      ]
      as: [
        buckets
      ]
    }
  ]
            Hi Roy- like I said before, the first option is to "copy the relevant series values onto multiple rows". To give a JSON example, you would need to go from this kind of data:
[
  { x: 1, y: 100, key: 'A' },
  { x: 1, y: 200, key: 'B' },
]
to this:
[
  { x: 1, y: 100, key: 'A', tooltip: [{ y: 100, key: 'A' }, { y: 200, key: 'B' }] },
  { x: 1, y: 200, key: 'B', tooltip: [{ y: 100, key: 'A' }, { y: 200, key: 'B' }] },
]
            Thx @wylie, let me have a check.
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.