Vega Lite данные выделения - PullRequest
0 голосов
/ 19 марта 2020

У меня есть функция hconcat в Vega lite, отображающая страну и счет. Я хотел выделить некоторые страны (изменив цвет некоторых и оставив остальные как есть), но всякий раз, когда я использую функцию цвета, она выдает ошибку, если она выходит за пределы go hconcad, или просто выделяет страны, в которых я хочу один график, но не отображать остальные:

С пустыми данными: enter image description here

с цветом в hconcat: enter image description here

Как сделать подсветку вне hconcat (или внутри я могу просто повторить все графики), оставив все остальные данные в одном цвете.

Мой код:

        {
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "data": {
    "url": "https://raw.githubusercontent.com/DanStein91/Info-vis/master/coffee.csv",
    "format": {
      "type": "csv",
      "parse": {
        "Aroma": "number",
        "Flavor": "number",
        "Aftertaste": "number",
        "Acidity": "number",
        "Clean_Cup": "number",
        "Body": "number",
        "Balance": "number",
        "Uniformity": "number",
        "Cupper_Points": "number",
        "Sweetness": "number"
      }
    }
  },
"transform": [
        {
          "filter": "datum.Country_of_Origin"
        },
        {
          "calculate": "datum.Aroma + datum.Flavor + datum.Aftertaste + datum.Acidity + datum.Sweetness + datum.Balance ",
          "as": "Taste_Points"
        },
        {
          "calculate": "datum.Cupper_Points + datum.Clean_Cup + datum.Uniformity",
          "as": "Cup_Points"
        }
      ],
      "hconcat": [
        {
          "mark": "bar",
          "encoding": {
            "y": {
              "field": "Country_of_Origin",
              "type": "nominal",
              "sort": "-x"
            },
            "x": {
              "field": "Taste_Points",
              "type": "quantitative",
              "aggregate": "mean"
            }
          }
        },
        {
          "mark": "bar",
          "encoding": {
            "y": {
              "field": "Country_of_Origin",
              "type": "nominal",
              "sort": "-x"
            },
            "x": {
              "field": "Cup_Points",
              "type": "quantitative",
              "aggregate": "mean"
            }
          }
        },
        {
          "mark": "bar",
          "encoding": {
            "y": {
              "field": "Country_of_Origin",
              "type": "nominal",
              "sort": "-x"
            },
            "x": {
              "field": "Total_Cup_Points",
              "type": "quantitative",
              "aggregate": "mean"
            },
      "color": {
        "field": "Country_of_Origin",
        "type": "nominal",
        "scale": {
          "domain": [
            "Papua New Guinea",
            "Mauritius"
          ],
          "range": [
            "#8101FA",
            "#00C7A9"
          ]
        }
      }
          }
        }
      ],
      "config": {}
    }

Спасибо.

1 Ответ

1 голос
/ 19 марта 2020

Вы можете сделать это, используя Диаграмму повторения вместе с Условием в цветовой кодировке. Результат может выглядеть примерно так ( представление в редакторе ):

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "data": {
    "url": "https://raw.githubusercontent.com/DanStein91/Info-vis/master/coffee.csv",
    "format": {
      "type": "csv",
      "parse": {
        "Aroma": "number",
        "Flavor": "number",
        "Aftertaste": "number",
        "Acidity": "number",
        "Clean_Cup": "number",
        "Body": "number",
        "Balance": "number",
        "Uniformity": "number",
        "Cupper_Points": "number",
        "Sweetness": "number"
      }
    }
  },
  "transform": [
    {"filter": "datum.Country_of_Origin"},
    {
      "calculate": "datum.Aroma + datum.Flavor + datum.Aftertaste + datum.Acidity + datum.Sweetness + datum.Balance ",
      "as": "Taste_Points"
    },
    {
      "calculate": "datum.Cupper_Points + datum.Clean_Cup + datum.Uniformity",
      "as": "Cup_Points"
    }
  ],
  "repeat": ["Taste_Points", "Cup_Points", "Total_Cup_Points"],
  "spec": {
    "mark": "bar",
    "encoding": {
      "y": {"field": "Country_of_Origin", "type": "nominal", "sort": "-x"},
      "x": {
        "field": {"repeat": "repeat"},
        "type": "quantitative",
        "aggregate": "mean"
      },
      "color": {
        "value": "steelblue",
        "condition": {
          "test": {
            "field": "Country_of_Origin",
            "oneOf": ["Papua New Guinea", "Mauritius"]
          },
          "field": "Country_of_Origin",
          "type": "nominal",
          "scale": {
            "domain": ["Papua New Guinea", "Mauritius"],
            "range": ["#8101FA", "#00C7A9"]
          }
        }
      }
    }
  }
}

enter image description here

...