首页 > 解决方案 > 如何控制轴上显示的比例?

问题描述

我希望 y 轴显示 2, 4, 6, 8, ... 16,每个值都有网格线(之间没有刻度线或网格线)。是否有一些选项可以控制显示和标记网格线的轴值?

我找到了一个丑陋的解决方法:通过将边界框 [-1, 8 , 6, -1] 制作为 y 轴刻度的 scale:0.5 和板高度 400 px,我看到了我想要的。然而,绘制一个点并没有考虑缩放:例如(1,4)在信息框中显示为(1,2)。此外,如果我将板高度增加到 500 像素,y 轴和网格线将更改为 1、2、3、4、...、16,所以我的解决方法不是处理根本问题,它只是欺骗系统显示我想被看到的东西。

标签: jsxgraph

解决方案


InsertTicks 需要为 false 才能使 ticksDistance 起作用

如果要全局设置,请取消注释前三行并将它们放在任何位置之前initBoard

/* JXG.Options.axis.ticks.insertTicks = false; */
/* JXG.Options.axis.ticks.ticksDistance = 2; */
/* JXG.Options.axis.ticks.minorHeight = 0; */

const board = JXG.JSXGraph.initBoard('jxgbox', { 
    boundingbox: [-10, 10, 10, -10], 
    axis:{
        ticks:{
            insertTicks:false, 
            ticksDistance: 2,
            minorHeight: 0, 
        }
    }
});

并且仅设置为 y 轴:

const board = JXG.JSXGraph.initBoard('jxgbox', { 
    boundingbox: [-10, 10, 10, -10], 
    axis:true,
    defaultAxes:{
        y:{
            ticks:{
                insertTicks:false, 
                ticksDistance: 2,
                minorHeight: 0, 
            }
        }
    }
});

推荐阅读