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

如何按输入顺序绘制XY坐标?Java JFreeChart连线顺序异常求助

解决JFreeChart按添加顺序绘制XY坐标的问题

嘿,我完全懂你的困扰——你本来想按添加顺序连接这四个坐标画出正方形,但JFreeChart却自动把点按X轴排序后连线,导致图形完全不是你想要的样子。

问题根源

默认情况下,XYSeries的构造函数第二个参数是true,这意味着它会自动按X值升序排列数据点。你添加的四个点:(2.0, 0)、(0, 2.0)、(-2.0, 0)、(0, -2.0),会被重新排序成(-2.0, 0)、(0, -2.0)、(0, 2.0)、(2.0, 0),连线后自然出不了正方形。

解决方案

创建XYSeries时,把第二个参数设为false,关闭自动排序功能,这样数据点就会严格按照你添加的顺序保留:

public Graph(final String title) { 
    super(title); 
    // 第二个参数设为false,禁用X轴排序,保持添加顺序
    final XYSeries series = new XYSeries("Random Data", false); 
    series.add(2.000 , 0); 
    series.add(0 , 2.000); 
    series.add(-2.000 , 0); 
    series.add(0 , -2.000); 
    final XYSeriesCollection data = new XYSeriesCollection(series); 
    final JFreeChart chart = ChartFactory.createXYLineChart( 
        "XY Series Demo", 
        "X", 
        "Y", 
        data, 
        PlotOrientation.VERTICAL, 
        true, 
        true, 
        false 
    );
}

这样修改后,图表就会按照你添加的顺序依次连接(2,0)→(0,2)→(-2,0)→(0,-2),完美画出你想要的正方形啦。

内容的提问来源于stack exchange,提问作者Yan Paing Oo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:41:14