Java jfreechart XylineandShaperAnder、XYDotRenderer和XYSplinderer之间的代码差异?
我试图创建简单的xysplinederer,但只有在我编写XYDotRenderer a=new XYDotRenderer()时,代码才起作用;或XylineandShaperEnder a=新的XylineandShaperEnder();sameone能说出我做错了什么吗?我只是编程的初学者 这是我的密码:Java jfreechart XylineandShaperAnder、XYDotRenderer和XYSplinderer之间的代码差异?,java,charts,jfreechart,Java,Charts,Jfreechart,我试图创建简单的xysplinederer,但只有在我编写XYDotRenderer a=new XYDotRenderer()时,代码才起作用;或XylineandShaperEnder a=新的XylineandShaperEnder();sameone能说出我做错了什么吗?我只是编程的初学者 这是我的密码: package kubas; import org.jfree.chart.*; import org.jfree.chart.axis.*; import org.jfree.ch
package kubas;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.xy.XYSplineRenderer;
import org.jfree.data.xy.*;
import org.jfree.ui.ApplicationFrame;
public class spausdink {
public static void main(String[] args) {
XYSeries series = new XYSeries("XY grafikas");
series.add(1, 2);
series.add(2, 4);
series.add(3, 8);
series.add(4, 16);
series.add(5, 32);
series.add(6, 64);
series.add(7, 128);
series.add(8, 256);
series.add(9, 512);
series.add(10, 1024);
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
ApplicationFrame frame = new ApplicationFrame("Mano grafikas");
NumberAxis xax = new NumberAxis("x");
NumberAxis yax = new NumberAxis("y");
XYSplineRenderer a = new XYSplineRenderer();
a.setPrecision(10);
XYPlot xyplot = new XYPlot(dataset, xax, yax, a);
JFreeChart chart = new JFreeChart(xyplot);
ChartPanel chartPanel = new ChartPanel(chart);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
编辑的消息:
这两个代码都能正常工作,然后我创建了一个新项目。我不确定出了什么问题,但下面有一个工作示例。我倾向于选择小的奇数值作为精度;默认值为
5
。相同的代码适用于xylineandshaperender
或
XYDotRenderer r = new XYDotRenderer();
r.setDotWidth(5);
r.setDotHeight(5);
导入java.awt.Dimension;
导入java.awt.EventQueue;
导入javax.swing.JFrame;
导入org.jfree.chart.*;
导入org.jfree.chart.axis.*;
导入org.jfree.chart.plot.*;
导入org.jfree.chart.renderer.xy.xysplinederer;
导入org.jfree.data.xy.*;
公开课考试{
公共静态最终字符串Title=“f(x)=2^x”;
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
@凌驾
公开募捐{
显示();
}
});
}
私有静态无效显示(){
XYSeries系列=新的XYSeries(标题);
对于(int i=0;我也看到了,谢谢你的代码,但当我将你的代码复制/粘贴到Netbeans时,它会像以前一样显示相同的错误(.同时使用XYLineAndShape和XYDotRanderer也能很好地工作。也许问题出在我的软件中?@VaidasTomkus:你在NetBeans中吗?编辑你的问题并粘贴错误消息。我已经解决了问题,我又创建了一个新项目,现在两个代码都能正常工作。@VaidasTomkus:很高兴你把它整理好了。另请参见Run>Clean And Build项目(名称)
+1。
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JFrame;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.xy.XYSplineRenderer;
import org.jfree.data.xy.*;
public class Test {
public static final String Title = "f(x) = 2^x";
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
display();
}
});
}
private static void display() {
XYSeries series = new XYSeries(Title);
for (int i = 0; i <= 10; i++) {
series.add(i, Math.pow(2, i));
}
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
NumberAxis domain = new NumberAxis("x");
NumberAxis range = new NumberAxis("f(x)");
XYSplineRenderer r = new XYSplineRenderer(3);
XYPlot xyplot = new XYPlot(dataset, domain, range, r);
JFreeChart chart = new JFreeChart(xyplot);
ChartPanel chartPanel = new ChartPanel(chart){
@Override
public Dimension getPreferredSize() {
return new Dimension(640, 480);
}
};
JFrame frame = new JFrame(Title);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(chartPanel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}