首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从线图的字符串值(文本)生成x坐标

从线图的字符串值(文本)生成x坐标
EN

Stack Overflow用户
提问于 2016-03-20 21:37:26
回答 1查看 36关注 0票数 0

我真的很努力学习d3,所以我希望你能帮我解决这个问题。我想出了如何将数据缩放或映射到y坐标的svg,因为该数据有数字。我会告诉你我是怎么做到的。但是对于x值,没有数字,只有1mo,2mo,3mo ..etc这样的文本。我想把这些转换成线图的x坐标。它们应该沿着图的宽度均匀地分布。希望您将向我展示如何获得x坐标,这样我就可以使用行生成器创建路径。

代码语言:javascript
复制
    var data = [
        {"quarter" : "1mo", "votes" : 400},
        {"quarter" : "2mo", "votes": 200},
        {"quarter": "3mo", "votes" : 1000},
        {"quarter" : "4mo", "votes" : 600}
    ]

    var width = 600;
    var height = 300;
    //supposed to get the domain ([0, 1000])
    var yscale = d3.scale.linear().domain([0, d3.max(data, function(d) {return d.votes})])
    yscale.range([height, 0])

    console.log(yscale(30)) //291
    //now I need to get the x cordinates
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-20 21:52:43

你在找d3.scale.ordinal

序数尺度有一个离散的域,例如一组名称或类别。

代码语言:javascript
复制
var data = [
  {"quarter" : "1mo", "votes" : 400},
  {"quarter" : "2mo", "votes": 200},
  {"quarter": "3mo", "votes" : 1000},
  {"quarter" : "4mo", "votes" : 600}
],
  width = 600;

var x = d3.scale.ordinal()
  .domain( data.map(function(d){ return d.quarter }) ) //<-- a tick for every quarter
  .rangeBands([0, width], .1); //<-- across the range of our graph with 10% padding on outer ticks

console.log(x("1mo"));
console.log(x("4mo"));
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

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

https://stackoverflow.com/questions/36119908

复制
相关文章

相似问题

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