【问题标题】:How to use Flot canvas plugin如何使用 Flot 画布插件
【发布时间】:2013-05-23 20:01:35
【问题描述】:

我正在使用 Flot 构建 Rails 3.2.11 应用程序。我想使用 Prawn 在 PDF 中呈现我的 Flot 图表。我的 Flot 图表在浏览器中呈现良好。我可以很好地创建 Prawn PDF(虽然还没有图表图像)。

我想使用 Flot 画布插件在画布上渲染我的轴等,以便在我使用 .getCanvas() 将图像数据 Ajax 到服务器时包含它们>.toDataURL() 方法,但我似乎无法让它工作。

我正在使用 jquery.flot.min.js 0.8.0 和 jquery.flot.canvas.min.js(未指明版本)。在 Chrome 控制台中,我看到两者都在加载。

我的 Coffeescript 看起来像这样:

temp_plot = $.plot $("#barchart"), [
    data: $("#barchart").data("bardata")
    bars:
      show: true
      barWidth: (365/12)*24*60*60*1000*0.8
      align: 'center'
  ],
    xaxis:
      mode: "time"
      timeformat: "%b"
      tickSize: [1, "month"]
    yaxis:
      position: 'right'
      labelWidth: '40'       
      reserveSpace: true
    canvas: true

barchart_canvas = temp_plot.getCanvas()

我能够看到 Ajax 有效负载,它确实是 Flot 图表画布,只是没有轴等。我感谢任何建议。谢谢!

为了更加清楚,Javascript 代码如下所示:

var barchart_canvas, temp_plot;

temp_plot = $.plot($("#barchart"), [
  {
    data: $("#barchart").data("bardata"),
    bars: {
      show: true,
      barWidth: (365 / 12) * 24 * 60 * 60 * 1000 * 0.8,
      align: 'center'
    }
  }
], {
  xaxis: {
    mode: "time",
    timeformat: "%b",
    tickSize: [1, "month"]
  },
  yaxis: {
    position: 'right',
    labelWidth: '40',
    reserveSpace: true
  },
  canvas: true
});

barchart_canvas = temp_plot.getCanvas();

更新 - 成功

我将 Flot 更新为 0.8.1,并包含了 0.8.1 .zip 存档中的 jquery.flot.canvas.js 文件。 (我在使用 Flot 0.8.0 和 jquery.flot.js 0.8.1 的插件时遇到了一些奇怪的渲染行为,所以要小心。)

现在我的坐标轴在画布上呈现。伟大的!感谢弗洛特诸神!

【问题讨论】:

    标签: html5-canvas flot


    【解决方案1】:

    您的选项看起来不错,假设(我不熟悉 CoffeeScript)最后一点应该缺少花括号。

    不过,您的 Flot 版本不能是 1.1;最新的是0.8.1,0.8.0引入了jquery.flot.canvas.min.js。所以你使用了错误的版本,或者一些可能不支持画布插件的 Flot 衍生产品。

    请注意,画布插件目前只影响轴;图例仍以 HTML 格式呈现。 0.9 版将全面支持在画布上渲染所有内容。

    【讨论】:

    • 你说得对,我使用的是 Flot 0.8.0; jquery 1.1 在 jquery.flot.min.js 文件中被引用。我的错。原帖已更正。我对画布上的轴很好。我可以处理 Prawn 脚本中的图例。画布中仍然没有轴。
    • jquery.flot.canvas.min.js 有版本吗?我应该更新到 Flot 0.8.1 吗?不知道还能看什么。
    • 核心插件目前与 Flot 本身同步发布,所以它们都有相同的版本。我建议升级到 0.8.1,但我们没有修复任何听起来像这个问题的东西。查看画布示例 (flotcharts.org/flot/examples/canvas/index.html) 或下载包中的 /examples/canvas/index.html。那样有用吗?如果是这样,请尝试将其用作起点,以找出它与您自己的实现之间的不同之处。
    • 查看成功更新。再次感谢!
    • 画布插件现在似乎很脆弱。在饼图中使用标签格式化程序功能创建的标签不会显示。此外,利用堆叠插件在水平条形图上启用画布仅占指定画布大小的一半
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多