Как использовать все размеры кружков на перфокарте? - PullRequest
1 голос
/ 07 мая 2020

В этой демонстрации VEGA-lite Table Bubble Plot используются все размеры, от маленьких до больших кругов.

Мой сценарий, показанный ниже, не используется, их всего 2 или 3 размеры. Как принудительно или сказать VEGA-lite использовать все размеры круга?

enter image description here

{
          "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
          "data": { "url":"/_sql/myTable"},
          "mark": "circle",
          "encoding": {
            "y": {
              "field": "instant",
              "type": "ordinal",
              "timeUnit": "day",
              "sort": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
            },
            "x": {
              "field": "instant",
              "type": "ordinal",
              "timeUnit": "hours"
            },
            "size": {
              "field": "n_pmin",
              "type": "quantitative",
              "aggregate": "avg"
            },
            "color": {
              "field": "n_pmin",
              "type": "quantitative",
              "aggregate": "avg"
            }           
          }
}

PS: идеально также изменить » только синий "градиент до " сине-зеленый ", но я не вижу, как установить цвет в цвет.


ПРИМЕЧАНИЯ

для запроса @Jim, образец:

[{"instant":"2020-04-23T14:46:42","n_pmin":2210086}, 
 {"instant":"2020-04-23T15:05:01","n_pmin":2214909}, 
 {"instant":"2020-04-23T16:05:01","n_pmin":2159652}, 
 {"instant":"2020-04-23T17:05:01","n_pmin":2290159}, 
 {"instant":"2020-04-23T18:05:01","n_pmin":2235739}, 
 {"instant":"2020-04-23T19:05:01","n_pmin":2505914}, 
 {"instant":"2020-04-23T20:05:01","n_pmin":2517069}, 
 {"instant":"2020-04-23T21:05:01","n_pmin":2492883}, 
 {"instant":"2020-04-23T22:05:01","n_pmin":2535839}, 
 {"instant":"2020-04-23T23:05:01","n_pmin":2519568}, 
 {"instant":"2020-04-24T00:05:02","n_pmin":2367309}, 
 {"instant":"2020-04-24T01:05:01","n_pmin":2384885}, 
 {"instant":"2020-04-24T02:05:01","n_pmin":2340421}, 
 {"instant":"2020-04-24T03:05:01","n_pmin":2369579}, 
 {"instant":"2020-04-24T04:05:01","n_pmin":2285203}, 
 {"instant":"2020-04-24T05:05:01","n_pmin":2206629}, 
 {"instant":"2020-04-24T06:05:01","n_pmin":2149411}, 
 {"instant":"2020-04-24T07:05:01","n_pmin":2218313}, 
 {"instant":"2020-04-24T08:05:01","n_pmin":2231320}, 
 {"instant":"2020-04-24T09:05:01","n_pmin":2163876}, 
 {"instant":"2020-04-24T10:05:01","n_pmin":2100388}, 
 {"instant":"2020-04-24T11:05:01","n_pmin":2040520}, 
 {"instant":"2020-04-24T12:05:02","n_pmin":2157928}, 
 {"instant":"2020-04-24T13:05:01","n_pmin":2099753}, 
 {"instant":"2020-04-24T15:05:01","n_pmin":2334844}, 
 {"instant":"2020-04-24T16:05:01","n_pmin":2430831}, 
 {"instant":"2020-04-24T17:05:01","n_pmin":2403722}, 
 {"instant":"2020-04-24T18:05:02","n_pmin":2468541}, 
 {"...":"..."},
 {"instant":"2020-05-13T16:05:01","n_pmin":2717164}, 
 {"instant":"2020-05-13T17:05:01","n_pmin":2794972}, 
 {"instant":"2020-05-13T18:05:01","n_pmin":2824981}, 
 {"instant":"2020-05-13T19:05:01","n_pmin":2852586}, 
 {"instant":"2020-05-13T20:05:01","n_pmin":2868170}]

1 Ответ

1 голос
/ 15 мая 2020

Краткий ответ на основной вопрос:

Как принудительно или сказать VEGA-lite использовать все размеры кружков ?

Say "zero": false. Но давайте посмотрим более подробно, как сделать это вручную, чтобы понять, когда вы можете установить scale.zero на false как более быстрое решение.


Вы можете настроить свойства, которые вы ' Вас интересует спецификация scale в соответствующих кодировках.

Для цветовой схемы вы можете установить scale.scheme на любой из параметров, перечисленных в Цветовые схемы Vega .

Для размеров вы можете установить scale.domain и scale.range на желаемые значения, где domain - это диапазон чисел в пространстве данных, а range - это область связанных знаков легенды в квадратных пикселях.

В качестве альтернативы, вы можете установить scale.zero на false, чтобы автоматически настроить домен и не указывать нулевое значение (что является причиной «отсутствующих» кружков на вашей диаграмме).

Собирая все вместе, с использованием предоставленных вами образцов данных ( редактор vega ) это может выглядеть так:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "data": {
    "values": [
      {"instant": "2020-04-23T14:46:42", "n_pmin": 2210086},
      {"instant": "2020-04-23T15:05:01", "n_pmin": 2214909},
      {"instant": "2020-04-23T16:05:01", "n_pmin": 2159652},
      {"instant": "2020-04-23T17:05:01", "n_pmin": 2290159},
      {"instant": "2020-04-23T18:05:01", "n_pmin": 2235739},
      {"instant": "2020-04-23T19:05:01", "n_pmin": 2505914},
      {"instant": "2020-04-23T20:05:01", "n_pmin": 2517069},
      {"instant": "2020-04-23T21:05:01", "n_pmin": 2492883},
      {"instant": "2020-04-23T22:05:01", "n_pmin": 2535839},
      {"instant": "2020-04-23T23:05:01", "n_pmin": 2519568},
      {"instant": "2020-04-24T00:05:02", "n_pmin": 2367309},
      {"instant": "2020-04-24T01:05:01", "n_pmin": 2384885},
      {"instant": "2020-04-24T02:05:01", "n_pmin": 2340421},
      {"instant": "2020-04-24T03:05:01", "n_pmin": 2369579},
      {"instant": "2020-04-24T04:05:01", "n_pmin": 2285203},
      {"instant": "2020-04-24T05:05:01", "n_pmin": 2206629},
      {"instant": "2020-04-24T06:05:01", "n_pmin": 2149411},
      {"instant": "2020-04-24T07:05:01", "n_pmin": 2218313},
      {"instant": "2020-04-24T08:05:01", "n_pmin": 2231320},
      {"instant": "2020-04-24T09:05:01", "n_pmin": 2163876},
      {"instant": "2020-04-24T10:05:01", "n_pmin": 2100388},
      {"instant": "2020-04-24T11:05:01", "n_pmin": 2040520},
      {"instant": "2020-04-24T12:05:02", "n_pmin": 2157928},
      {"instant": "2020-04-24T13:05:01", "n_pmin": 2099753},
      {"instant": "2020-04-24T15:05:01", "n_pmin": 2334844},
      {"instant": "2020-04-24T16:05:01", "n_pmin": 2430831},
      {"instant": "2020-04-24T17:05:01", "n_pmin": 2403722},
      {"instant": "2020-04-24T18:05:02", "n_pmin": 2468541},
      {"instant": "2020-05-13T16:05:01", "n_pmin": 2717164},
      {"instant": "2020-05-13T17:05:01", "n_pmin": 2794972},
      {"instant": "2020-05-13T18:05:01", "n_pmin": 2824981},
      {"instant": "2020-05-13T19:05:01", "n_pmin": 2852586},
      {"instant": "2020-05-13T20:05:01", "n_pmin": 2868170}
    ]
  },
  "mark": "circle",
  "encoding": {
    "y": {
      "field": "instant",
      "type": "ordinal",
      "timeUnit": "day",
      "sort": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
    },
    "x": {"field": "instant", "type": "ordinal", "timeUnit": "hours"},
    "size": {
      "field": "n_pmin",
      "type": "quantitative",
      "aggregate": "mean",
      "scale": {"domain": [2200000, 3000000], "range": [100, 500]}
    },
    "color": {
      "field": "n_pmin",
      "type": "quantitative",
      "aggregate": "mean",
      "scale": {"domain": [2200000, 3000000], "scheme": "bluegreen"}
    }
  }
}

enter image description here


Automati c ненулевое соответствие для динамических данных

Dyn Обычные данные (например, новые данные при обновлении sh веб-страницы) - это типичный случай, когда мы не можем использовать постоянные диапазоны доменов. На этой другой диаграмме в редакторе VEGA оба scale.zero (цвета и размера) установлены на false, что приводит к автоматической c настройке диапазона шкалы:

    "size": {
      "field": "n_pmin",
      "type": "quantitative",
      "aggregate": "mean",
      "scale": {"zero": false }
    },
    "color": {
      "field": "n_pmin",
      "type": "quantitative",
      "aggregate": "mean",
      "scale": {"scheme": "bluegreen", "zero": false}
    }
...