<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 7.2 使用categoryDataset數據集創建折線圖 ### 7.2.1 概述 使用CategoryDataset創建的折線圖將每個數據點(種類,值)使用一條直線連接起來。本章講的一個簡單應用產生如下界面,如圖7.1: ![](img/jfc37789.png) 圖7.1 一個簡單的折線圖 全部的代碼簡JFreeChart開發指南一并下載的demo(參考:LineChartDemo1.java)。 ### 7.2.2 CategoryDataset 正如其他圖表一樣,創建折線圖的第一步是創建第一個dataset。在本例子中,使用DefaultCategoryDataset,代碼如下: ``` private static CategoryDataset createDataset() { DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); defaultcategorydataset.addValue(212.0, "Classes", "JDK 1.0"); defaultcategorydataset.addValue(504.0, "Classes", "JDK 1.1"); defaultcategorydataset.addValue(1520.0, "Classes", "JDK 1.2"); defaultcategorydataset.addValue(1842.0, "Classes", "JDK 1.3"); defaultcategorydataset.addValue(2991.0, "Classes", "JDK 1.4"); defaultcategorydataset.addValue(3500.0, "Classes", "JDK 1.5"); return defaultcategorydataset; } ``` 注意:你可以使用任何實現Category接口的數據集。 ### 7.2.3 創建圖表 ChartFactory類提供了一個便利的方法createLineChart()創建折線圖。代碼如下: ``` JFreeChart jfreechart = ChartFactory.createLineChart( "Java Standard Class Library",// 圖表標題 null, // 主軸標簽 "Class Count",// 范圍軸標簽 categorydataset, // 數據集 PlotOrientation.VERTICAL,// 方向 false, // 是否包含圖例 true, // 提示信息是否顯示 false// 是否使用urls ); ``` 該方法構建了一個帶有標題、圖例、和相應的數軸和心態提示產生器的JFreeChart對象。創建Dataset數據集的過程見上節。 ### 7.2.4 定制圖表 折線圖表將使用大部分缺省的屬性來進行初始化。當然了,我們也可以隨意修改折線圖的屬性,來改變我們圖表的外觀。在本例中,我們通過下面的方式定制折線圖: + 在圖表上添加兩個副標題; + 圖表的背景顏色設成白色; + 圖區背景顏色設成亮灰色; + 網格線顏色改變成白色; + 范圍軸修改成僅顯示整數數值; + renderer使用白色填充的形狀。 首先,將副標題添加在缺省的位置(主標題下方),代碼如下: ``` jfreechart.addSubtitle(new TextTitle("Number of Classes By Release")); ``` 第二個副標題加入了一些額外的代碼,來改變字體,并放置在圖表的下方,并且靠右對其,代碼如下: ``` TextTitle texttitle = (new TextTitle("Source: Java In A Nutshell (5th Edition) by David Flanagan (O'Reilly)")); texttitle.setFont(new Font("SansSerif", 0, 10)); texttitle.setPosition(RectangleEdge.BOTTOM); texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT); jfreechart.addSubtitle(texttitle); ``` 改變圖表的背景顏色非常簡單,因為JFreeChart類就有設置背景顏色的屬性。代碼如下: ``` //改變圖表的背景顏色 jfreechart.setBackgroundPaint(Color.white); ``` 如果改變其他屬性的,則需要首先獲得圖表CategoryPlot對象的引用,然后對該引用進行相應屬性的設置。獲得對象引用的代碼如下: ``` CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); ``` 使用CategoryPlot設置圖區的背景顏色為亮灰色,設置網格線顏色為白色的代碼如下: ``` categoryplot.setBackgroundPaint(Color.lightGray); categoryplot.setRangeGridlinePaint(Color.white); ``` 圖區負責在圖表上畫出數據和軸。其中一部分工作由renderer來完成,我們可以通過getRender()來獲得一個renderer。renderer維護大部分與圖表內數據項的顯示相關的屬性。代碼如下: ``` LineAndShapeRenderer renderer = (LineAndShapeRenderer) categoryplot.getRenderer(); renderer.setShapesVisible(true); renderer.setDrawOutlines(true); renderer.setUseFillPaint(true); ``` 同時圖區也管理著圖表所有的軸。在本實例中,修改范圍軸以便范圍軸的刻度標簽顯示為整數值。 ``` NumberAxis rangeAxis = (NumberAxis) categoryplot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); ``` 定制圖表還有很多其他的方式。具體的內容詳見本文檔相關章節,API文檔以及源代碼實例。 ### 7.2.5 程序的全部代碼 ``` /* ------------------- * LineChartDemo1.java * ------------------- * (C) Copyright 2002-2005, by Object Refinery Limited. * */ package demo; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.geom.Ellipse2D; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleEdge; import org.jfree.ui.RefineryUtilities; public class LineChartDemo1 extends ApplicationFrame { /** * */ private static final long serialVersionUID = -6354350604313079793L; /* synthetic */static Class class$demo$LineChartDemo1; public LineChartDemo1(String string) { super(string); JPanel jpanel = createDemoPanel(); jpanel.setPreferredSize(new Dimension(500, 270)); setContentPane(jpanel); } private static CategoryDataset createDataset() { DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); defaultcategorydataset.addValue(212.0, "Classes", "JDK 1.0"); defaultcategorydataset.addValue(504.0, "Classes", "JDK 1.1"); defaultcategorydataset.addValue(1520.0, "Classes", "JDK 1.2"); defaultcategorydataset.addValue(1842.0, "Classes", "JDK 1.3"); defaultcategorydataset.addValue(2991.0, "Classes", "JDK 1.4"); defaultcategorydataset.addValue(3500.0, "Classes", "JDK 1.5"); return defaultcategorydataset; } private static JFreeChart createChart(CategoryDataset categorydataset) { JFreeChart jfreechart = ChartFactory.createLineChart( "Java Standard Class Library",// 圖表標題 null, // 主軸標簽 "Class Count",// 范圍軸標簽 categorydataset, // 數據集 PlotOrientation.VERTICAL,// 方向 false, // 是否包含圖例 true, // 提示信息是否顯示 false// 是否使用urls ); // 添加主標題 jfreechart.addSubtitle(new TextTitle("Number of Classes By Release")); TextTitle texttitle = (new TextTitle( "Source: Java In A Nutshell (5th Edition) by David Flanagan (O'Reilly)")); texttitle.setFont(new Font("SansSerif", 0, 10)); texttitle.setPosition(RectangleEdge.BOTTOM); texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT); jfreechart.addSubtitle(texttitle); // 改變圖表的背景顏色 jfreechart.setBackgroundPaint(Color.white); CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); categoryplot.setBackgroundPaint(Color.lightGray); categoryplot.setRangeGridlinePaint(Color.white); categoryplot.setRangeGridlinesVisible(false); URL url = (class$demo$LineChartDemo1 == null ? class$demo$LineChartDemo1 = class$("demo.LineChartDemo1") : class$demo$LineChartDemo1).getClassLoader().getResource( "OnBridge11small.png"); if (url != null) { ImageIcon imageicon = new ImageIcon(url); jfreechart.setBackgroundImage(imageicon.getImage()); categoryplot.setBackgroundPaint(new Color(0, 0, 0, 0)); } NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot .getRenderer(); lineandshaperenderer.setShapesVisible(true); lineandshaperenderer.setDrawOutlines(true); lineandshaperenderer.setUseFillPaint(true); lineandshaperenderer.setBaseFillPaint(Color.white); lineandshaperenderer.setSeriesStroke(0, new BasicStroke(3.0F)); lineandshaperenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0F)); lineandshaperenderer.setSeriesShape(0, new Ellipse2D.Double(-5.0, -5.0, 10.0, 10.0)); LineAndShapeRenderer renderer = (LineAndShapeRenderer) categoryplot .getRenderer(); renderer.setShapesVisible(true); renderer.setDrawOutlines(true); renderer.setUseFillPaint(true); return jfreechart; } public static JPanel createDemoPanel() { JFreeChart jfreechart = createChart(createDataset()); return new ChartPanel(jfreechart); } public static void main(String[] strings) { LineChartDemo1 linechartdemo1 = new LineChartDemo1( "JFreeChart - Line Chart Demo 1"); linechartdemo1.pack(); RefineryUtilities.centerFrameOnScreen(linechartdemo1); linechartdemo1.setVisible(true); } /* synthetic */ static Class class$(String string) { Class var_class; try { var_class = Class.forName(string); } catch (ClassNotFoundException classnotfoundexception) { throw new NoClassDefFoundError(classnotfoundexception.getMessage()); } return var_class; } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看