如何按输入顺序绘制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
相关产品推荐
相关产品推荐

