Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQL डेटाबेस से समय के साथ JFreechart चार्ट

उद्धृत उदाहरण JDBCXYDataset का उपयोग करके JDBCCategoryDataset के साथ भी काम करता है कोड> , जैसा कि नीचे दिखाया गया है और आपके मूल प्रश्न में दिखाया गया है . JDBCCategoryDataset . का उपयोग करना , "पहला कॉलम श्रेणी का नाम होगा और [the] शेष कॉलम [होगा] मान (प्रत्येक कॉलम एक श्रृंखला का प्रतिनिधित्व करता है);" JDBCXYDataset . का उपयोग करके , "पहला स्तंभ x-अक्ष और शेष स्तंभ y-अक्ष मान होंगे।" परिणामस्वरूप, मैं आपकी क्वेरी के कुछ इस तरह होने की अपेक्षा करूंगा:

SELECT Date_Time, PV …

चूंकि आपका डोमेन अक्ष समय है, लेबल स्थितियों को घुमाने पर विचार करें, जैसा कि यहां दिखाया गया है। . निर्णय लेते समय, ध्यान दें कि एक TimeSeries अभिविन्यास के बारे में कम लचीला है लेकिन स्वरूपण के बारे में अधिक लचीला है।

उदाहरण में निम्न परिवर्तन फ़्लोटिंग पॉइंट मानों का उपयोग करके वर्णन करें। ध्यान दें कि PV float type प्रकार का है , और PreparedStatement setFloat() . का उपयोग करता है ।

JDBCCategoryDataset jds = createDataset();
JFreeChart chart = ChartFactory.createLineChart("Test", "Time", "PV",
    jds,PlotOrientation.VERTICAL, true, true, false);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis domain = plot.getDomainAxis();
plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
…
private JDBCCategoryDataset createDataset() {
    try {
        Connection conn = DriverManager.getConnection(
            "jdbc:h2:mem:test", "", "");
        Statement st = conn.createStatement();
        st.execute("create table data(when timestamp, pv float)");
        PreparedStatement ps = conn.prepareStatement(
            "insert into data values (?, ?)");
        Calendar c = Calendar.getInstance();
        for (int i = 0; i < N; i++) {
            ps.setTimestamp(1, new Timestamp(c.getTimeInMillis()));
            ps.setFloat(2, (float)r.nextGaussian() + 2);
            ps.execute();
            c.add(Calendar.SECOND, r.nextInt(60 * 60));
        }
        JDBCCategoryDataset jds = new JDBCCategoryDataset(conn);
        jds.executeQuery("select when, pv from data");
        return jds;
    } catch (SQLException ex) {
        ex.printStackTrace(System.err);
    }
    return null;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल 'पसंद' वाक्यविन्यास

  2. MySQL में पंक्तियों को लाने के लिए क्वेरी का चयन करें

  3. MySQL ACOS () फ़ंक्शन - किसी संख्या का आर्क कोसाइन लौटाएं

  4. InnoDB चयन करें ... अद्यतन विवरण के लिए एक तालिका में सभी पंक्तियों को लॉक करना

  5. पीडीओ में त्रुटि:एक सदस्य समारोह के लिए कॉल तैयार करें () शून्य पर