JFreechartは、オープンソースサイトSourceForge.netのJavaプロジェクトです。主に、パイチャート、バーチャート(通常のバーチャートとスタックバーチャート)、ラインチャート、エリアチャート、流通チャート、混合チャート、ガントチャート、いくつかのダッシュボードなど、さまざまなチャートに使用されています。
jfreechartを適用して絵を描くには、jfreechart.jarとjcommon.jarの2つのJARパッケージが必要です。
以下は、ラインチャートを描画する例です。
パッケージyuth.jfree.demo; /***カテゴリダタセットデータセットを使用して行チャートを作成します*多くのデータがある場合、水平座標の値はjPanelで完全には表示されず、楕円として表示されます。 *解決策: *方法1。レポートを画像として保存する場合、画像の幅を十分に大きくする(2000または3000)に設定して、写真が水平座標値を表示できるようにします。 *この方法では症状を扱いますが、根本原因は扱われないため、2番目の方法があります*方法2:X軸のラブルを設定して45度を傾けます。 */ Import Java.awt.BasicStroke; java.awt.colorをインポートします。 java.awt.dimensionをインポートします。 java.awt.fontをインポートします。 java.awt.geom.ellipse2dをインポートします。 java.io.fileをインポートします。 java.io.ioexceptionをインポートします。 java.net.urlをインポートします。 java.text.decimalformatをインポートします。 java.util.randomをインポートします。 javax.swing.imageiconをインポートします。 javax.swing.jpanelをインポートします。 Import org.jfree.chart.chartfactory; Import org.jfree.chart.chartpanel; Import org.jfree.chart.chartutitivities; Import org.jfree.chart.jfreechart; Import org.jfree.chart.axis.categoryaxis; org.jfree.chart.axis.categorylabelpositionsをインポートします。 org.jfree.chart.axis.numberaxisをインポートします。 Import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; Import org.jfree.chart.plot.categoryplot; Import org.jfree.chart.plot.plotorientation; Import org.jfree.chart.renderer.category.lineandshaperender; import org.jfree.chart.title.texttitle; Import org.jfree.data.category.categorydataset; Import org.jfree.data.category.defaultcategorydataset; Import org.jfree.ui.applicationframe; org.jfree.ui.horizontalalignmentをインポートします。 Import org.jfree.ui.rectangleEdge; org.jfree.ui.rectangleInsetsをインポートします。 Import org.jfree.ui.refineryutitivities;パブリッククラスlinechartdemo1 extends applicationframe {private static final long serialversionuid = -6354350604313079793l; / * Synthetic */Static Class $ demo $ linechartdemo1; public linechartdemo1(string string){super(string); jpanel jpanel = createdemopanel(); jpanel.setPreferredSize(new Dimension(500、270)); SetContentPane(JPanel); } /***異なる凡例を区別する方法:DefaultCategoryDataset.AddValue()の2番目のパラメーターが同じかどうかに基づいて区別します。 *同じ凡例に追加されたデータの順序は、最終ディスプレイに影響します。異なる凡例に追加されたデータの順序は、最終ディスプレイに影響しません。 * @return */ private static categorydataset createdataset(){defaultCategoryDataset defaultCategoryDataset = new DefaultCategoryDataset(); //defaultcategorydataset.addvalue()パラメーター分析:(数値、凡例名、水平座標値)//データ方法1 // legend 1 DefaultCategoryDataset.AddValue(212.0、 "First"、 "1001.0"); DefaultCategoryDataset.AddValue(504.0、 "First"、 "1001.1"); DefaultCategoryDataset.AddValue(1520.0、 "First"、 "1001.2"); // Legend 2 DefaultCategoryDataset.AddValue(712.0、 "Second"、 "1001.0"); DefaultCategoryDataset.AddValue(1204.0、 "Second"、 "1001.1"); DefaultCategoryDataset.AddValue(1820.0、 "Second"、 "1001.2"); /*///* //データ方法2 //実験ランダム数を実験してテスト結果を生成するランダム= new Random(12345); //凡例1、40データのデータ(int i = 0; i <40; i ++){defaultCategoryDataset.AddValue(random.nextint(100000)、 "first"、string.valueof(1000+i)); } // legent 2、40 Data for(int i = 0; i <40; i ++){defaultcategorydataset.addvalue(random.nextint(100000)、 "second"、string.valueof(1000+i)); } //*/defaultcategorydatasetを返します。 } private static jfreechart createchart(categorydataset categorydataset){jfreechart jfreechart = chartfactory.createlinechart( "jfreechartテスト"、//チャートタイトル "x"、//紡錘体ラベル(x-axis) "y" plotorientation. vertical、// wortionation false、// legend trueを含めるかどうか、// falseかどうかをプロンプトメッセージ); categoryplot categoryplot =(categoryplot)jfreechart.getplot(); categoryplot.setbackgroundpaint(color.lightgray); categoryplot.setRangeGridLinePaint(color.white); categoryplot.setrangegridlinesvisible(false); //範囲軸を変更します。整数スケール値のみを表示するために、デフォルトのスケール値(小数を表示することが許可)を変更します。 numberaxis numberraxis =(numberaxis)categoryplot.getrangeaxis(); numberraxis.setStandTickunits(numberaxis.createintegertickunits()); // X軸にラーブルを設定して、45度カテゴリ軸domainaxis = categoryplot.getDomainaxis(); domainaxis.setcategoryLabelpositions(categorylabelpositions.up_45); // x軸にラーブルを設定して、ドメインアクシス45度を傾けるように設定します。SetlowerMargin(0.0); //画像の左端から距離を設定しますdomainaxis.setuppermargin(0.0); //画像の右端から距離を設定しますlineandshaperender lineandshaperenderer =(lineandshaperender)categoryplot .getRenderer(); lineandshaperender.setshapesvisible(true); lineandshaperender.setdrawoutlines(true); lineandshaperender.setusefillpaint(true); lineandshaperender.setbasefillpaint(color.white); lineandshaperenderer.seteriesstroke(0、new basicstroke(3.0f)); lineandshaperender.setseriesoutlinestroke(0、new basicstroke(2.0f)); lineandshaperender.setseriesshape(0、new Ellipse2d.Double(-5.0、-5.0、10.0、10.0)); lineandshaperender.setItemmargin(0.4); // x軸の各値の間隔を設定します(動作していませんか??) Decimalformat1) } public static jPanel createdemopanel(){jfreechart jfreechart = createchart(createdataset()); {chartutitivities.savechartasjpeg(new file( "d:/linechartdemo1.png" ")、//ファイルを保存するための物理パスにはパスとファイル名が含まれます// 1.0f、//画質、0.0f〜1.0f jfreechart、// chart object 1024、 Ellipsis 768); } catch(ioException e){// todo auto-fenated catch block e.printstacktrace(); } //画像の高さは新しいChartpanel(jfreechart)を返します。 } public static void main(string [] strings){linechartdemo1 linechartdemo1 = new linechartdemo1( "jfreechart -lineチャートデモ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){新しいnoclassdeffounderror(classNotFoundException.getMessage()); } var_classを返します。 }}実行結果:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。