【问题标题】:Flot jQuery charts - stacked lines with filled area on reverse Y axisFlot jQuery 图表 - 在反向 Y 轴上填充区域的堆积线
【发布时间】:2016-05-18 09:01:34
【问题描述】:

我正在使用 FLOT 来渲染我的图表。我的 X 轴是日期,我的 Y 轴是反转的(底部最大值,顶部最小值)。除了堆叠的填充线(线条之间的填充区域看起来好像 Y 轴没有反转。知道如何反转这两个以使反转的 Y 轴看起来自然吗?

仅供参考:我的图表代表了谷歌搜索引擎上每个域的关键字排名(欢迎提供替代呈现的建议​​)

(这就是现在的样子)

【问题讨论】:

  • 您真的需要填充区域吗?无论哪种方式,顶线之间的区域都不是真正可见的。 (我也会在图表的顶线和边框之间留出一点空间。)
  • 我很困惑,你想把它填满吗?接近最大数量?
  • 你到底是如何反转轴的?
  • 你解决过这个问题吗?致@DNS:见biostall.com/inverting-the-y-axis-on-jquery-flot-graph

标签: flot


【解决方案1】:

猴子修补jquery.flot.js 文件 (http://www.flotcharts.org/flot/jquery.flot.js),第 2401 到 2411 行,反转画布填充路径即可:

// now first check the case where both is outside
if (y1 >= axisy.max && y2 >= axisy.max) {
    ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));
    ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));
    continue;
}
else if (y1 <= axisy.min && y2 <= axisy.min) {
    ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));
    ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));
    continue;
}

您需要在第一个if 中将axisy.max 更改为axisy.min,反之亦然。这里生成的代码:

// now first check the case where both is outside
if (y1 >= axisy.max && y2 >= axisy.max) {
    ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));
    ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));
    continue;
}
else if (y1 <= axisy.min && y2 <= axisy.min) {
    ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));
    ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));
    continue;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多