首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vega-lite上创建单个数据点的部分饼图?

如何在vega-lite上创建单个数据点的部分饼图?
EN

Stack Overflow用户
提问于 2021-02-12 01:58:22
回答 1查看 218关注 0票数 0

我正在使用vega-lite创建一个饼图(在Airtable上)。我有一个数据点,这是我设置的目标,以及该目标的完成百分比。例如如下所示:

代码语言:javascript
复制
{
        "Target": "Get 10 customers",
        "Percentage complete": "60"
}

我想做一个完成了60%的饼图,其余的是空的。类似于交互式的单圆弧饼图显示https://vega.github.io/vega-lite/docs/arc.html

我的代码目前看起来像这样

代码语言:javascript
复制
{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "title": "Customer Acquired",
  "width": "container",
  "height": "container",
  "data": {
    "values": [
      {
        "Target": "Get 10 customers",
        "Percentage complete": "60"
      }
  ]},
  "mark": {
    "type": "arc",
    "tooltip": true
  },
  "encoding": {
    "theta": {
      "field": "Percentage complete",
      "type": "quantitative"
    }
  }
}

我的饼图现在看起来就像这样:

我意识到我可以通过手动设置theta2属性来强制饼图以我想要的方式显示,如下所示

代码语言:javascript
复制
"mark": {
    "type": "arc",
    "tooltip": true,
    "theta2": 3.5
}

然而,我不知道“完成百分比”字段是什么,这个值可能会经常改变,所以我不想手动完成它。vega-lite能做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 05:03:57

theta编码的域将自动设置为输入数据的最小值和最大值。要显示图表的正确部分,需要将域设置为[0, 100]

代码语言:javascript
复制
  "encoding": {
    "theta": {
      "field": "Percentage complete",
      "type": "quantitative",
      "scale": {"domain": [0, 100]}
    }
  }

您可以在vega editor中查看生成的图表:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66160171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档