JSXGraph:如何在不隐藏轴标签和刻度的情况下隐藏网格?

JSXGraph: How do I hide the grid without hiding the axis labels and ticks?

默认情况下,JSXGraph 的板在后台呈现网格。当我用选项 axis: false 实例化它时,网格消失了,但轴标签和刻度线也消失了。

像这样摆弄JXG.Options似乎没有任何作用:

JXG.Options.grid.strokeColor = '#ff0000';
JXG.Options.grid.strokeOpacity = 0;

grid 板选项实际上并没有关闭网格,只是让它在缩放时表现不同,注意到 here

基本上,像这样制作电路板会关闭 Y 轴的轴刻度和网格:

var board = JXG.JSXGraph.initBoard(id, {
  axis: true,
  defaultAxes: {
    y: { ticks: { visible: false } }
  }
});

并将 visible 更改为 true 使网格和刻度可见。

如何只关闭背景网格,同时保持轴标签不变?

好吧,我通过查看 jsxgraph 中的 options.js 弄明白了这一点。主格实际简称为"ticks",与轴线上的刻度密切相关。事实上,它是用我猜测的同一段代码绘制的。刻度有 minorHeightmajorHeight ,指的是轴线上的刻度或整个背景上的刻度。 minorHeight默认为10,majorHeight默认为-1,特例,表示全盘画。解决方案是更改 majorHeight 使其看起来像小刻度线,只是为了清晰起见略有不同:

var board = JXG.JSXGraph.initBoard(id, {
  axis: true,
  defaultAxes: {
    y: { ticks: { visible: true, majorHeight: 5 } }
  }
});