首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有plottable.js -酒吧位置的时间轴上的条形图

具有plottable.js -酒吧位置的时间轴上的条形图
EN

Stack Overflow用户
提问于 2016-09-08 15:39:48
回答 1查看 252关注 0票数 0

如何将条形图与相关日期与plottable.js库对齐?第一条数据来自Wed 7,第二条来自清华8。

下面是JSFiddle示例:https://jsfiddle.net/50yq46cm/3/

代码语言:javascript
复制
function makeBasicChart() {

  var data    = [{"date":1473120000000,"count":0},{"date":1473206400000,"count":73},{"date":1473292800000,"count":3},{"date":1473379200000,"count":0},{"date":1473465600000,"count":0},{"date":1473552000000,"count":0},{"date":1473638400000,"count":0},{"date":1473724800000,"count":0}];
  var dataset = new Plottable.Dataset(data);

  var xScale  = new Plottable.Scales.Time();
  var yScale  = new Plottable.Scales.Linear();

  var xAxis   = new Plottable.Axes.Time(xScale, "bottom");
  var yAxis   = new Plottable.Axes.Numeric(yScale, "left");

  var plot    = new Plottable.Plots.Bar();

  plot.x(function (d) { return d.date; },   xScale);
  plot.y(function (d) { return d.count; },  yScale);
  plot.addDataset(dataset);

  var chart = new Plottable.Components.Table([
    [yAxis, plot],
    [null, xAxis]
  ]);

  chart.renderTo("svg#tutorial-result");

}

$(document).ready(function () {
  makeBasicChart();
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-09 08:33:56

我找到了简单的解决办法。我们需要增加12个小时的每一个日期,然后是酒吧在正确的位置。

JSFiddle在这里,https://jsfiddle.net/gpfz62z4/4/

(代码略有改进。我添加了一些交互性(尝试鼠标),并将日期更改为string,因为条形图更精确。

代码语言:javascript
复制
    function makeBasicChart() {

      var data    = [{"x":"2016-09-06 00:00","y":0},{"x":"2016-09-07 00:00","y":73},{"x":"2016-09-08 00:00","y":3},{"x":"2016-09-09 00:00","y":0},{"x":"2016-09-10 00:00","y":0},{"x":"2016-09-11 00:00","y":0},{"x":"2016-09-12 00:00","y":0},{"x":"2016-09-13 00:00","y":0}];
    var dataset = new Plottable.Dataset(data);

    var xScale  = new Plottable.Scales.Time().domain([new Date("2016-09-05"), new Date("2016-09-16")]);;
    var yScale  = new Plottable.Scales.Linear();

    var xAxis   = new Plottable.Axes.Time(xScale, "bottom");
    var yAxis   = new Plottable.Axes.Numeric(yScale, "left");

    var plot    = new Plottable.Plots.Bar();

    plot.addDataset(dataset);
    plot.x(function (d) { return (moment(new Date(d.x)).add(12, 'h')); }, xScale);
    plot.y(function (d) { return d.y; }                                 , yScale);
    plot.attr("width", function() { return xScale.scale(24*3600*1000) - xScale.scale(0); });

    var grid    = new Plottable.Components.Gridlines(xScale);
    var group   = new Plottable.Components.Group([plot, grid]);

    var chart = new Plottable.Components.Table([
      [yAxis, group],
      [null, xAxis]
    ]);

    chart.renderTo("svg#tutorial-result");
    pzi = new Plottable.Interactions.PanZoom(xScale, null).attachTo(chart);
  }

  $(document).ready(function () {
    makeBasicChart();
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39395133

复制
相关文章

相似问题

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