gpt4 book ai didi

java - JFreeChart - 无法像在Excel中那样绘制图形

转载 作者:行者123 更新时间:2023-12-02 02:49:52 24 4
gpt4 key购买 nike

我在 JFreeChart 中绘制图形时遇到问题,我需要绘制如图所示的图形。

excel graphic

但是在java中我得到了这样的图形

graphic in java

有什么办法可以解决这个问题吗?

我的java代码:

    import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import javax.swing.*;

public class MyGraph {
private static double A=20, R0=-40;

public static void main(String[] args) {
XYSeries series = new XYSeries("my graphic");

for (double fi = 0,step = 0.05; fi < 2*Math.PI; fi+=step) addCoordinate(series,fi);

XYDataset xyDataset = new XYSeriesCollection(series);
JFreeChart chart = ChartFactory
.createXYLineChart("my graphic 14", "x", "y",
xyDataset,
PlotOrientation.VERTICAL,
true, true, true);
JFrame frame =
new JFrame("MinimalStaticChart");
frame.getContentPane()
.add(new ChartPanel(chart));
frame.setSize(400,300);
frame.setVisible(true);
}
private static void addCoordinate(XYSeries series,double fi){
double ro = Math.cos(fi)-0.5;
series.add(ro*Math.cos(fi),ro*Math.sin(fi));
System.out.printf("fi = %f ro = %f x = %f y = %f\n", fi , ro, ro*Math.cos(fi), ro*Math.sin(fi));
}
}

如何在图像中看到,形式和坐标相同,但JFreeChart绘制图形不像在excel中,我怎样才能用java像在excel中一样绘制我的图形,我应该使用哪些方法? (如果可以的话 - 请举例说明)

最佳答案

您正在使用 XYSeries(String) 构造函数,该构造函数按 x 对值进行排序。如果您在填写系列后添加此内容,您将会看到它:

for (Object i : series.getItems()) {
System.out.println(i);
}

所以您唯一需要更改的是series的初始化:

XYSeries series = new XYSeries("my graphic", false);

关于java - JFreeChart - 无法像在Excel中那样绘制图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44021384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com