You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置Plot2DPanel对数刻度时X轴刻度与网格缺失问题求助

问题原因

jMathPlot的Plot2DPanel切换对数刻度后刻度和网格消失是两个常见原因导致:

  1. 先添加数据再切换对数刻度时,自动计算的轴范围可能出现异常,或是默认仅展示10的整数次幂刻度,若数据区间内这类刻度数量极少就会看起来刻度完全消失
  2. 切换对数刻度后轴的网格、刻度显示会被默认重置为隐藏状态
解决步骤
  • 调整代码顺序,先设置对数刻度再添加绘图数据,避免范围计算冲突
  • 手动指定X轴的取值范围,确保最小值大于0,完全覆盖你用到的X数据区间
  • 显式开启X轴的刻度、网格显示,按需开启非10整数次幂的刻度标签展示
修改后可正常运行的代码
public class Graficas2D {
    public static void main(String[] args) {
        double[] x = {125, 250, 500, 1000};
        double[] y = {.2, .34, .67, .5};

        Plot2DPanel grafico = new Plot2DPanel("SOUTH");
        // 先设置X轴(索引0对应X轴)为对数刻度
        grafico.setAxisScale(0, "LOG");
        // 手动指定X轴范围,最小值大于0,覆盖所有X数据
        grafico.setAxisBounds(0, 100, 1200);
        // 显式开启X轴刻度、网格显示
        grafico.getAxis(0).setTicksVisible(true);
        grafico.getAxis(0).setGridVisible(true);
        // 开启后可显示125、250等非10整数次幂的刻度标签,不需要可删除
        grafico.getAxis(0).setLightLabelVisible(true);
        // 最后添加折线数据
        grafico.addLinePlot("Test", x, y);

        JFrame frame = new JFrame("Mi grafico");
        frame.setSize(500, 500);
        frame.setContentPane(grafico);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

内容的提问来源于stack exchange,提问作者Agustín Arias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 13:00:05