我正在尝试为 flot 创建一个插件,该插件将绘制穿过原点 (0,0) 的轴,而不是仅显示在绘图的边缘。我想做的一件事是,在使用我的插件时,应该禁止绘制常规轴(边缘的轴)。因此,我在一个函数中添加了一些逻辑,该函数与 processOptions 挂钩,如下所示:
plot.hooks.processOptions.push(processOptions);
function processOptions(plot, options) {
if (options.crossOrigin) {
if (options.xaxis.crossOrigin) {
options.xaxis.show = false;
plot.hooks.drawBackground.push(drawXAxis);
}
if (options.yaxis.crossOrigin) {
options.yaxis.show = false;
plot.hooks.drawBackground.push(drawYAxis);
}
}
}
通过将 options.xaxis.show 设置为 false(对于 yaxis 也是如此),这应该会阻止轴出现,但它不起作用。该选项已设置,但 flot 在绘制图形时会忽略它。我可以让它不绘制常规轴的唯一方法是在设置绘图时显式设置显示选项。
任何想法为什么这不起作用?有没有办法让它工作?
更新:所以在玩了一段时间之后,我认为正在发生的事情是,例如,一个 options.xaxis 和一个 options.xaxes (一个数组)只包含一个条目。出于某种原因,flot 想要使用 options.xaxes[0] 中的 1 轴而不是 options.xaxis。但我不太确定这里的逻辑应该是什么。他们都将我的自定义“crossOrigin”选项合并,但只有 options.xaxis 得到它的“显示”属性集。