【问题标题】:vega horizontal bar chartsvega 水平条形图
【发布时间】:2015-07-13 21:37:00
【问题描述】:

vega 文档/教程建议设置水平条形图很容易,但我一生都无法弄清楚。如何将垂直条形图(例如 http://vega.github.io/vega-editor/index.html?spec=bar)更改为水平条形图?

【问题讨论】:

    标签: charts vega


    【解决方案1】:

    这样

    {
      "width": 200,
      "height": 210,
      "padding": "auto",
      "data": [
        {
          "name": "raw",
          "values": [
            {"x": "A","y": 28},
            {"x": "B","y": 55},
            {"x": "C","y": 43},
            {"x": "D","y": 91},
            {"x": "E","y": 81},
            {"x": "F","y": 53},
            {"x": "G","y": 19},
            {"x": "H","y": 87},
            {"x": "I","y": 52}
          ],
          "format": {"parse": {"y": "number"}},
          "transform": [{"type": "filter","test": "(d.data.y!==null)"}]
        }
      ],
      "scales": [],
      "marks": [
        {
          "_name": "cell",
          "type": "group",
          "properties": {
            "enter": {"width": {"value": 200},"height": {"value": 210}}
          },
          "scales": [
            {
              "name": "x",
              "type": "linear",
              "domain": {"data": "raw","field": "data.y"},
              "range": [0,200],
              "zero": true,
              "reverse": false,
              "round": true,
              "nice": true
            },
            {
              "name": "y",
              "type": "ordinal",
              "domain": {"data": "raw","field": "data.x"},
              "sort": true,
              "range": [0,210],
              "bandWidth": 21,
              "round": true,
              "nice": true,
              "points": true,
              "padding": 1
            }
          ],
          "axes": [
            {
              "type": "x",
              "scale": "x",
              "properties": {
                "grid": {
                  "stroke": {"value": "#000000"},
                  "opacity": {"value": 0.08}
                }
              },
              "layer": "back",
              "format": "",
              "ticks": 5,
              "titleOffset": 38,
              "grid": true,
              "title": "y"
            },
            {
              "type": "y",
              "scale": "y",
              "properties": {
                "labels": {"text": {"template": "{{data | truncate:25}}"}},
                "grid": {
                  "stroke": {"value": "#000000"},
                  "opacity": {"value": 0.08}
                }
              },
              "layer": "back",
              "titleOffset": 28,
              "grid": true,
              "title": "x"
            }
          ],
          "marks": [
            {
              "type": "rect",
              "from": {"data": "raw"},
              "properties": {
                "enter": {
                  "x": {"scale": "x","field": "data.y"},
                  "x2": {"value": 0},
                  "yc": {"scale": "y","field": "data.x"},
                  "height": {"value": 21,"offset": -1},
                  "fill": {"value": "#4682b4"}
                },
                "update": {
                  "x": {"scale": "x","field": "data.y"},
                  "x2": {"value": 0},
                  "yc": {"scale": "y","field": "data.x"},
                  "height": {"value": 21,"offset": -1},
                  "fill": {"value": "#4682b4"}
                }
              }
            }
          ],
          "legends": []
        }
      ]
    }
    

    我从

    生成了这张图表
    {
      "data": {
        "values": [
          {"x":"A", "y":28}, {"x":"B", "y":55}, {"x":"C", "y":43},
          {"x":"D", "y":91}, {"x":"E", "y":81}, {"x":"F", "y":53},
          {"x":"G", "y":19}, {"x":"H", "y":87}, {"x":"I", "y":52}
        ]
      },
      "marktype": "bar",
      "encoding": {
        "y": {"type": "O","name": "x"},
        "x": {"type": "Q","name": "y"}
      }
    }
    

    使用 vega-lite (https://vega.github.io/vega-lite/)。

    【讨论】:

    • 非常感谢,我以为这已经死在水里了。
    猜你喜欢
    • 2020-12-29
    • 2023-03-29
    • 2017-09-30
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2021-12-15
    • 2015-01-13
    相关资源
    最近更新 更多