我正在尝试为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在绘制图形时会忽略它。我可以让它不绘制常规轴的唯一方法是在设置绘图时明确设置show选项。
为什么这不起作用的任何想法?有没有办法让它发挥作用?
更新:所以在玩了一段时间之后,我认为发生的事情是,例如,options.xaxis和options.xaxes(一个数组)包含只需1个条目。出于某种原因,flot想要在options.xaxes [0]中使用1轴而不是options.xaxis。但我不太清楚这里的逻辑应该是什么。他们都合并了我的自定义“crossOrigin”选项,但只有options.xaxis获得了它的“show”属性集。
答案 0 :(得分:0)
使用xaxes [0]而不是xaxis似乎解决了这个问题,虽然目前还不清楚flot何时以及如何处理这些东西。