Производное преобразование на Vega-Lite - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть набор данных, который мне нужен для построения производной от него функции.Есть ли способ выполнить производную серии в Vega-Lite?Может быть, функция преобразования или, возможно, с функцией вычисления?Есть ли способ сделать это вручную, X(t) - X(t-1)?

1 Ответ

0 голосов
/ 10 февраля 2019

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

Вот пример ( ссылка на Vega Editor ):

{
  "data": {
    "values": [
      {"x": 0, "y": 0},
      {"x": 1, "y": 0.8},
      {"x": 2, "y": 0.9},
      {"x": 3, "y": 0.1},
      {"x": 4, "y": -0.8},
      {"x": 5, "y": -1},
      {"x": 6, "y": -0.3},
      {"x": 7, "y": 0.7},
      {"x": 8, "y": 1},
      {"x": 9, "y": 0.4},
      {"x": 10, "y": -0.5}
    ]
  },
  "transform": [
    {
      "window": [{"op": "last_value", "field": "y", "as": "y1"}],
      "frame": [0, 1],
      "sort": [{"field": "x", "order": "ascending"}]
    },
    {"calculate": "datum.y1 - datum.y", "as": "dy"}
  ],
  "layer": [
    {
      "mark": "line",
      "encoding": {
        "x": {"type": "quantitative", "field": "x"},
        "y": {"type": "quantitative", "field": "y"}
      }
    },
    {
      "mark": "line",
      "encoding": {
        "color": {"value": "red"},
        "x": {"type": "quantitative", "field": "x"},
        "y": {"type": "quantitative", "field": "dy"}
      }
    }
  ],
  "config": {"view": {"width": 400, "height": 300}}
}

enter image description here

...