在 Flot 中,是不是可以在不消除相应标签的情况下消除或隐藏网格刻度?

Posted

技术标签:

【中文标题】在 Flot 中,是不是可以在不消除相应标签的情况下消除或隐藏网格刻度?【英文标题】:In Flot, is it possible to eliminate or hide grid ticks without eliminating the corresponding label?在 Flot 中,是否可以在不消除相应标签的情况下消除或隐藏网格刻度? 【发布时间】:2010-09-15 06:07:47 【问题描述】:

Flot API documentation 描述了库中用于自定义图形轴的大量钩子。您可以为每个轴分别设置刻度数、颜色等。但是,我不知道如何防止 Flot 在不删除 x 轴标签的情况下绘制垂直网格线。我尝试更改 tickColor、ticks 和 tickSize 选项,但没有成功。

我想创建漂亮的、与 Tufte 兼容的图表,例如:

http://www.robgoodlatte.com/wp-content/uploads/2007/05/tufte_mint.gif http://www.argmax.com/mt_blog/archive/RealGDP_graph.jpg

我发现我的图表上的垂直刻度是图表垃圾。我正在处理一个显示为垂直条的时间序列,因此垂直刻度通常会以一种视觉上嘈杂的方式穿过这些条。

【问题讨论】:

链接已损坏。 我们可以接受来自@dkrape 的超过 20 票的答案,哪个是最新的? 【参考方案1】:

正如劳里曼所说,Flot 不断发展。 API 中添加了对此进行控制的功能(如 Nelson 链接到的 flot 问题中所述)。

如果您下载最新版本(仍标记为 0.6),您可以使用“tickLength”禁用轴上的线,如下所示:

xaxis: 
  tickLength: 0

相当烦人的是,API 文档中并未更新此新增内容。

【讨论】:

好点凯文。是的,我也必须从后备箱中获取它。他们应该迭代版本号并将其添加到主下载中。 当我查看时,该添加已在主干的 API 文档中进行了更新。它不在其中一个下载中,您必须从存储库中获取 JS 和 API 文档。 @KevinLewis flot 现已移至 github github.com/flot/flot Googlecode 现已过期【参考方案2】:

这篇文章比 OP 和 Flot(现在的 0.6 版)晚了两年,在那段时间里可能已经发展了很多,或者可能有比它更好的选择,但无论哪种情况,这都是我的贡献。

我不小心遇到了解决此问题的方法:将网格的刻度颜色的 Alpha 通道设置为完全透明。例如:

var options =   
      grid:   show: true,
               color: "rgb(48, 48, 48)",
               tickColor: "rgba(255, 255, 255, 0)",
               backgroundColor: "rgb(255, 255, 255)"
    ;

为我工作。

【讨论】:

【参考方案3】:

经过一番挖掘,我很确定通过 Flot API 是不可能的。不过,如果你真的很脏,你可以这样做 - 我已经发布了一个 modified version of one example 可以做到这一点。 查看源代码显示整个丑陋。

【讨论】:

那么将您的方法总结为:1)在轴上使用微小的刻度,这样它们实际上不会出现; 2) 使用具有计算绝对样式的自定义 div 自己构建标签,以确保它们位于正确的位置? 看起来这与 Flot 内部的工作量非常接近 :) 有什么方法可以将它打包并作为补丁提交给他们? (PS。感谢您的回答;我认为您是对的,现在将接受它。) 是的,就是这样。我已经从绘图函数中复制了一些代码——它们需要一些修改,但我想我可以很快提交它:)【参考方案4】:

要避免选项中的刻度,只需在相应的轴上给出刻度:[]

【讨论】:

【参考方案5】:

从 2009 年 6 月开始,flot issue 167 是对这个确切功能的请求。包括两个实现和一些来自 flot 作者的一致意见,认为这是一个好主意。

【讨论】:

以上是关于在 Flot 中,是不是可以在不消除相应标签的情况下消除或隐藏网格刻度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在flot中获取x轴标签?

Jquery Flot Chart 标签未显示

在R闪亮中,如何在不使用renderUI的情况下首次调用应用程序时消除侧边栏中所有条件面板的闪烁?

jquery 绘图工具 flot 学习笔记

如何在不消除对象歧义的情况下使用 circe 解码 ADT

如何在不改变绘图宽度的情况下使用 ggplot2 在 R 中添加可变大小的 y 轴标签?