qtynou 2019-05-24 12:53 采纳率: 50%
浏览 278
已采纳

java 函数图上如何只显示特定的点?

怎么只显示用户需要的点?
比如,用户输入x值:-3,-1,0,2。
图上只显示出四个点

图片说明

import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

public class DrawMath {
    public static void main(String[] args) {
        XYSeries series = new XYSeries("xySeries");
        for (int x = -10; x < 11; x++) {
            int y = x * x;
            series.add(x, y);
        }

        XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(series);
        JFreeChart chart = ChartFactory.createXYLineChart(
                "y = x^2", // chart title
                "x", // x axis label
                "x^2", // y axis label
                dataset, // data
                PlotOrientation.VERTICAL,
                false, // include legend
                false, // tooltips
                false // urls
        );

        XYPlot plot = (XYPlot)chart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesLinesVisible(0, false); 
        plot.setRenderer(renderer);

        ChartFrame frame = new ChartFrame("my picture", chart);
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-05-24 12:56
    关注

    for (int x = -10; x < 11; x++) {
    int y = x * x;
    series.add(x, y);
    }
    ->
    series.add(-3, -3*-3);
    series.add(-1, -1*-1);
    series.add(0, 0);
    series.add(2, 2*2);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?