java 畫數學函數圖__函數

來源:互聯網
上載者:User

java 畫數學函數圖不太方便,需要用第三方包 jfree,安裝或下載方法網上有。

要用到 jfree 裡面的 XYSeries,產生一系列資料。

然後根據產生的資料,使用 chart 描點畫圖。

舉例: 1. 畫圖 y= x^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;public class DrawMath {public static void main(String[] args) {XYSeries series = new XYSeries("xySeries");for (int x = -100; x < 100; 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 labeldataset, // dataPlotOrientation.VERTICAL,false, // include legendfalse, // tooltipsfalse // urls);ChartFrame frame = new ChartFrame("my picture", chart);frame.pack();frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

顯示效果:



2. 畫圖 y= sin(x)

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;public class DrawMath {public static void main(String[] args) {XYSeries series = new XYSeries("xySeries");for (double x = -10; x < 10; x = x + 0.1) {double y = Math.sin(x);series.add(x, y);}XYSeriesCollection dataset = new XYSeriesCollection();dataset.addSeries(series);JFreeChart chart = ChartFactory.createXYLineChart("y = sin(x)", // chart title"x", // x axis label"sin(x)", // y axis labeldataset, // dataPlotOrientation.VERTICAL,false, // include legendfalse, // tooltipsfalse // urls);ChartFrame frame = new ChartFrame("my picture", chart);frame.pack();frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

顯示效果:



3. 畫散佈圖

畫散佈圖時,要用到 plot 與 render 進一步設定了。

舉例:

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.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;import org.jfree.data.xy.XYSeries;import org.jfree.data.xy.XYSeriesCollection;public class DrawMath {public static void main(String[] args) {XYSeries series = new XYSeries("xySeries");for (double x = -10; x < 10; x = x + 0.1) {double y = Math.sin(x);series.add(x, y);}XYSeriesCollection dataset = new XYSeriesCollection();dataset.addSeries(series);JFreeChart chart = ChartFactory.createXYLineChart("y = sin(x)", // chart title"x", // x axis label"sin(x)", // y axis labeldataset, // dataPlotOrientation.VERTICAL,false, // include legendfalse, // tooltipsfalse // 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(); // fit window to figure sizeframe.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

顯示效果:




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.