выделите оба столбца в одной и той же позиции х с многослойными столбиками - PullRequest
1 голос
/ 31 января 2020

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

Единственное решение, которое я могу придумать, - это использовать vega и явно ссылаться на базовый набор данных (поскольку сигнал selection основан на смещении, а не на данных).

Возможно, вы знаете, как это можно сделать в vega-lite?

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "selection": {
    "select": {"type": "multi"}
  },
  "data": {
    "values": [
      {"STAT_CAUSE_DESCR": "Arson", "count": 804, "is_overview": true},
      {"STAT_CAUSE_DESCR": "Arson", "count": 604, "is_overview": false},
      {"STAT_CAUSE_DESCR": "Campfire", "count": 231, "is_overview": true},
      {"STAT_CAUSE_DESCR": "Children", "count": 97, "is_overview": true},
      {"STAT_CAUSE_DESCR": "Children", "count": 50, "is_overview": false},
      {
        "STAT_CAUSE_DESCR": "Debris Burning",
        "count": 1175,
        "is_overview": true
      },
      {
        "STAT_CAUSE_DESCR": "Debris Burning",
        "count": 115,
        "is_overview": false
      },
      {"STAT_CAUSE_DESCR": "Equipment Use", "count": 301, "is_overview": true},
      {"STAT_CAUSE_DESCR": "Equipment Use", "count": 51, "is_overview": false},
      {
        "STAT_CAUSE_DESCR": "Missing/Undefined",
        "count": 233,
        "is_overview": true
      }
    ]
  },
  "mark": "bar",
  "encoding": {
    "x": {"field": "STAT_CAUSE_DESCR", "type": "ordinal"},
    "y": {"field": "count", "type": "quantitative", "stack": null},
    "color": {
      "field": "is_overview",
      "type": "nominal",
      "scale": {"range": ["#003E6B", "#9FB3C8"], "domain": [false, true]},
      "legend": null
    },
    "opacity": {"value": 0.5},
    "stroke": {"value": "#F0B429"},
    "strokeWidth": {
      "condition": [
        {
          "test": {
            "and": [{"selection": "select"}, "length(data(\"select_store\"))"]
          },
          "value": 3
        }
      ],
      "value": 0
    }
  },
  "config": {}
}

1 Ответ

1 голос
/ 31 января 2020

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

  "selection": {
    "select": {"type": "multi", "encodings": ["x"]}
  },

Просмотреть результат здесь :

enter image description here

...