日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 散点图 数据库 代码_java – 来自数据库的jfreechart中的散点图

發布時間:2025/3/21 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 散点图 数据库 代码_java – 来自数据库的jfreechart中的散点图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何使用java中的jfreechart在mysql數據庫表中繪制數據的散點圖.我用過swing庫.

任何鏈接都會有所幫助.我搜索谷歌但無法找到理解解決方案.

如果你有代碼,請提供給我.

實際上我做了barchart并使用jfreechart繪制它.

我用于條形圖的代碼就在這里.這里display3函數顯示條形圖.

如何修改它以顯示散點圖?

public void display3() throws SQLException, ClassNotFoundException{

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

String JDBC_DRIVER="com.mysql.jdbc.Driver";

String DB_URL="jdbc:mysql://localhost/data2";

Connection conn;

Statement stmt;

String USER = "root";

String PASS = "";

try{

Class.forName(JDBC_DRIVER);

conn=DriverManager.getConnection(DB_URL,USER,PASS);

System.out.println("Creating statement...");

stmt = conn.createStatement();

String sql;

sql="SELECT * FROM `production` WHERE crop_id = 1 AND location_id = 1";

ResultSet rs=stmt.executeQuery(sql);

while (rs.next()){

//String student = rs.getString("studentname");

String yeartext = rs.getString("year_of_production");

//double value = Double.parseDouble(text);

String productiontext = rs.getString("production_amount");

double production = Double.parseDouble(productiontext);

Integer year = Integer.parseInt(yeartext);

dataset.setValue(production, "production", year);

}

JFreeChart chart = ChartFactory.createBarChart("Bar Graph",// Chart Title

"Year", //horizontal axis label

"Paddy Production", // vertical axis label

dataset, //data

PlotOrientation.VERTICAL, //orientation of chart

true, //include legend

false, // tool tips

true);//urls

CategoryPlot p = chart.getCategoryPlot();

ChartPanel chartPanel = new ChartPanel(chart, false);

jPanel9.setLayout(new BorderLayout());

jPanel9.add(chartPanel, BorderLayout.EAST);

jPanel9.add(chartPanel);

SwingUtilities.updateComponentTreeUI(this);

p.setRangeGridlinePaint(blue);

System.out.println("Database created successfully...");

} catch(SQLException se) {

//Handle errors for JDBC

System.out.println("Connect failed ! ");

se.printStackTrace();

}

}

I finally solved my problem:

優化代碼如下,它的工作原理如下:

public void display3() throws SQLException, ClassNotFoundException{

//DefaultCategoryDataset dataset = new DefaultCategoryDataset();

XYSeriesCollection dataset = new XYSeriesCollection();

XYSeries series = new XYSeries("production");

String JDBC_DRIVER="com.mysql.jdbc.Driver";

String DB_URL="jdbc:mysql://localhost/data2";

Connection conn;

Statement stmt;

String USER = "root";

String PASS = "";

try{

Class.forName(JDBC_DRIVER);

conn=DriverManager.getConnection(DB_URL,USER,PASS);

System.out.println("Creating statement...");

stmt = conn.createStatement();

String sql;

sql="SELECT * FROM `production` WHERE crop_id = 1 AND location_id = 1";

ResultSet rs=stmt.executeQuery(sql);

while (rs.next()){

//String student = rs.getString("studentname");

String yeartext = rs.getString("year_of_production");

//double value = Double.parseDouble(text);

String productiontext = rs.getString("production_amount");

double production = Double.parseDouble(productiontext);

double year = Double.parseDouble(yeartext);

series.add(year,production) ;

//dataset.addSeries(series);

}

dataset.addSeries(series);

JFreeChart chart = ChartFactory.createScatterPlot("Scatter Plot","Year","Paddy Production", dataset);

//CategoryPlot p = chart.getCategoryPlot();

//XYPlot xyplot = (XYPlot)jfreechart.getPlot();

//https://stackoverflow.com/questions/12417732/jfreechart-with-scroller

ChartPanel chartPanel = new ChartPanel(chart, false);

jPanel9.setLayout(new BorderLayout());

jPanel9.add(chartPanel, BorderLayout.EAST);

jPanel9.add(chartPanel);

SwingUtilities.updateComponentTreeUI(this);

// p.setRangeGridlinePaint(blue);

System.out.println("Database created successfully...");

}catch(SQLException se){

//Handle errors for JDBC

System.out.println("Connect failed ! ");

se.printStackTrace();

// JOptionPane.showMessageDialog(MajorUI.this, err.getMessage());

}

}

解決方法:

此完整示例在內存中創建合適的數據庫表,將其查詢到JDBCXYDataset并在散點圖中顯示數據集.請注意第一列如何成為域,而連續列成為單個系列.

import java.awt.EventQueue;

import java.sql.Connection;

import java.sql.Date;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Calendar;

import java.util.Random;

import javax.swing.JFrame;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartPanel;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.DateAxis;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.plot.XYPlot;

import org.jfree.data.jdbc.JDBCXYDataset;

/**

* @see https://stackoverflow.com/a/24592754/230513

*/

public class JDBCTest {

private static final int N = 30;

private static final Random r = new Random();

private void display() {

JFrame f = new JFrame("JDBCTest");

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JDBCXYDataset jds = createDataset();

JFreeChart chart = ChartFactory.createScatterPlot("Inventory",

"Date", "Count", jds, PlotOrientation.VERTICAL, true, true, false);

XYPlot plot = chart.getXYPlot();

plot.setDomainAxis(new DateAxis("Date"));

f.add(new ChartPanel(chart));

f.pack();

f.setLocationRelativeTo(null);

f.setVisible(true);

for (int i = 0; i < jds.getItemCount(); i++) {

System.out.println(new Date(jds.getX(0, i).longValue()));

}

}

private JDBCXYDataset createDataset() {

try {

Connection conn = DriverManager.getConnection(

"jdbc:h2:mem:test", "", "");

Statement st = conn.createStatement();

st.execute("create table inventory(when date, n1 integer, n2 integer)");

PreparedStatement ps = conn.prepareStatement(

"insert into inventory values (?, ?, ?)");

Calendar c = Calendar.getInstance();

for (int i = 0; i < N; i++) {

ps.setDate(1, new Date(c.getTimeInMillis()));

ps.setInt(2, N / 3 + r.nextInt(N / 3));

ps.setInt(3, N / 2 + r.nextInt(N / 3));

ps.execute();

c.add(Calendar.MONTH, 1);

}

JDBCXYDataset jds = new JDBCXYDataset(conn);

jds.executeQuery("select when, n1, n2 from inventory");

return jds;

} catch (SQLException ex) {

ex.printStackTrace(System.err);

}

return null;

}

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

new JDBCTest().display();

}

});

}

}

標簽:scatter-plot,java,mysql,jfreechart,swing

來源: https://codeday.me/bug/20190926/1820473.html

總結

以上是生活随笔為你收集整理的Java 散点图 数据库 代码_java – 来自数据库的jfreechart中的散点图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。