JFreeChart - त्वरित गाइड

एक चार्ट सूचना का एक चित्रमय प्रतिनिधित्व है। विभिन्न उपकरण उपलब्ध हैं, जिनका उपयोग विभिन्न प्रकार के चार्ट बनाने के लिए किया जा सकता है। JFreeChartडेविड गिलबर्ट द्वारा परियोजना की स्थापना फरवरी 2000 में की गई थी। आज, यह जावा डेवलपर्स के बीच सबसे अधिक उपयोग की जाने वाली चार्टिंग लाइब्रेरी है।

यह ट्यूटोरियल आपको यह समझने में मदद करेगा कि वास्तव में JFreeChart क्या है, इसकी आवश्यकता क्यों है, और जावा-आधारित एप्लिकेशन या स्वतंत्र रूप से विभिन्न प्रकार के चार्ट बनाने के विभिन्न तरीके।

JFreeChart क्या है?

JfreeChart जावा में विकसित एक खुला स्रोत पुस्तकालय है। यह चार्ट की एक विस्तृत श्रृंखला बनाने के लिए जावा आधारित अनुप्रयोगों के भीतर उपयोग किया जा सकता है। JFreeChart का उपयोग करके, हम सभी प्रमुख प्रकार के 2 डी और 3 डी चार्ट बना सकते हैं जैसे पाई चार्ट, बार चार्ट, लाइन चार्ट, एक्सवाई चार्ट और 3 डी चार्ट।

क्यों JFreeChart?

JFreeChart खुला स्रोत और 100% मुफ़्त है, जो बिना किसी लागत के वाणिज्यिक अनुप्रयोगों में उपयोग की अनुमति देता है। हमने यहां कुछ और बिंदु दिए हैं, जिनके कारण आपको JFreeChart का उपयोग करना चाहिए -

  • यह अच्छी तरह से प्रलेखित एपीआई के साथ आता है, जो इसे समझने में काफी आसान बनाता है।

  • यह चार्ट प्रकारों की एक विस्तृत श्रृंखला का समर्थन करता है जैसे पाई चार्ट, लाइन चार्ट, बार चार्ट, एरिया चार्ट और 3 डी चार्ट।

  • JFreeChart को विस्तारित करना आसान है और इसका उपयोग क्लाइंट-साइड, साथ ही सर्वर-साइड एप्लिकेशन दोनों में किया जा सकता है।

  • यह पीएनजी, जेपीईजी, पीडीएफ, एसवीजी आदि जैसे कई आउटपुट प्रारूपों का समर्थन करता है।

  • यह चार्ट के व्यापक अनुकूलन की अनुमति देता है।

ऐसी स्थिति पर विचार करें जहां आप एक एप्लिकेशन विकसित कर रहे हैं और आपको डेटा को चार्ट के रूप में दिखाने की आवश्यकता है, और डेटा स्वयं गतिशील रूप से आबादी है। ऐसे मामले में, JFreeChart प्रोग्रामिंग का उपयोग करके चार्ट के रूप में डेटा प्रदर्शित करना बहुत सरल है।

JFreeChart अपने कुशल चार्ट निर्माण और उपयोगकर्ता के अनुकूल स्थापना सेटअप के लिए लोकप्रिय है। यह अध्याय विंडोज और लिनक्स पर JFreeChart की स्थापना की प्रक्रिया का वर्णन करता है। JFreeChart स्थापित करते समय उपयोगकर्ता प्रशासन की आवश्यकता है।

सिस्टम आवश्यकताएं

JDK 1.5 या ऊपर
Memory 2 जीबी रैम
Disk Space कोई न्यूनतम आवश्यकता नहीं
Operating System Version लिनक्स या विंडोज

JFreeChart स्थापित करना

JFreeChart को स्थापित करने के लिए, निम्नलिखित तीन चरण हैं…

चरण 1: जावा स्थापना का सत्यापन

जावा इंस्टॉलेशन को सत्यापित करने के लिए, कंसोल खोलें और निम्नलिखित जावा कमांड को निष्पादित करें -

ओएस टास्क आदेश
खिड़कियाँ कमांड कंसोल खोलें C:> java -version
लिनक्स ओपन कमांड टर्मिनल $ जावा -अविवर्तन

एक बार जावा इंस्टॉलेशन ठीक से हो जाने के बाद, आपको दोनों ऑपरेटिंग सिस्टम के लिए निम्न आउटपुट प्राप्त करने चाहिए -

S.No ओएस और विवरण
1

Windows

जावा संस्करण "1.7.0_60" जावा (टीएम) एसई रन टाइम एनवायरनमेंट (बिल्ड 1.7.0_60-बी 19) जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वीएम (24.60-b09, मिश्रित मोड का निर्माण)

2

Linux

जावा संस्करण "1.7.0_25" OpenJDK रनटाइम एनवायरनमेंट (rhel2.3.10.4.el6_4-x86_64) OpenJDK 64-बिट सर्वर VM (23.7-b01, मिश्रित मोड का निर्माण)

यदि आपके पास जावा स्थापित नहीं है, तो लिंक से जावा सॉफ्टवेयर डेवलपमेंट किट (एसडीके) स्थापित करें -

https://www.oracle.com/technetwork/java/javase/downloads/index.html

हम मानते हैं कि आपने इस ट्यूटोरियल के लिए आगे बढ़ने से पहले जावा 1.7.0_60 संस्करण स्थापित किया है।

चरण 2: JAVA पर्यावरण की स्थापना

ठीक JAVA_HOMEवातावरण चर आधार निर्देशिका स्थान पर इंगित करने के लिए जहां जावा आपकी मशीन पर स्थापित है। उदाहरण के लिए,

S.No ओएस और विवरण
1

Windows

पर्यावरण चर JAVA_HOME को C: \ ProgramFiles \ java \ jdk1.7.0_60 पर सेट करें

2

Linux

निर्यात JAVA_HOME = / usr / स्थानीय / जावा-वर्तमान

सिस्टम पथ में जावा संकलक स्थान को जोड़ें।

S.No ओएस और विवरण
1

Windows

स्ट्रिंग को जोड़ो; C: \ Program Files \ Java \ jdk1.7.0_60 \ bin सिस्टम चर पथ के अंत में।

2

Linux

निर्यात पथ = $ पथ: $ जाव_होम / बिन /

आदेश का सत्यापन करें java -version ऊपर बताए अनुसार कमांड से संकेत दिया।

चरण 3: JFreeChart स्थापित करना

लिंक से JFreeChart.zip का नवीनतम संस्करण डाउनलोड करें http://www.jfree.org/jfreechart/download/किसी भी स्थान पर डाउनलोड की गई फ़ाइल को खोलना जहां से आवश्यक पुस्तकालयों को आपके जावा कार्यक्रम में जोड़ा जा सकता है। निम्नलिखित छवि निर्देशिकाओं और फ़ाइलों की संरचना को दर्शाती है -

Jfreechart-1.0.18.jar और jcommon-1.0.22.jar फ़ाइलों का पूरा पथ नीचे दिखाए गए अनुसार CLASSPATH में जोड़ें -

S.No ओएस और विवरण
1

Windows

उपयोगकर्ता के अंत में स्ट्रिंग्स "C: \ jfreechart-1.0.18 \ lib \ jfreechart-1.0.18.jar" और "C: \ jfreechart-1.0.18 \ lib \ jcommon-1.0.22.jar" को जोड़ें। चर वर्ग

2

Linux

निर्यात CLASSPATH = $ CLASSPATH: /usr/share/jfreechart1.0.18/lib/jfreechart-1.0.18.jar: /usr/share/jfreechart-1.0.18/lib/jcommon1.0.22.jar

Note - MySql डेटाबेस के साथ संवाद करने के लिए आपको कक्षापथ को सेट करने की आवश्यकता है mysql-connector-java-5.0.8-bin.jar भी।

यह अध्याय आपको JFreeChart के बारे में एक विचार देने के लिए JFreeChart के बुनियादी वर्ग स्तर और आवेदन स्तर के आर्किटेक्चर के बारे में बताता है कि JFreeChart विभिन्न वर्गों के साथ कैसे बातचीत करता है और यह आपके जावा आधारित अनुप्रयोग में कैसे फिट बैठता है।

कक्षा स्तर की वास्तुकला

कक्षा स्तर की वास्तुकला बताती है कि विभिन्न प्रकार के चार्ट बनाने के लिए पुस्तकालय से विभिन्न वर्ग एक-दूसरे से कैसे बातचीत करते हैं।

निम्नलिखित ब्लॉक आरेख में प्रयुक्त इकाइयों का विवरण निम्नलिखित है -

S.No इकाइयाँ और विवरण
1

File

फ़ाइल में डेटासेट बनाने के लिए उपयोग किए जाने वाले उपयोगकर्ता इनपुट का स्रोत।

2

Database

डेटाबेस में डेटासेट बनाने के लिए उपयोग किए जाने वाले उपयोगकर्ता इनपुट का स्रोत।

3

Create Dataset

डाटासेट स्वीकार करता है और डाटासेट वस्तु में डेटासेट संग्रहीत करता है।

4

General Dataset

इस प्रकार का डेटासेट मुख्य रूप से पाई चार्ट के लिए उपयोग किया जाता है।

5

Category Dataset

इस प्रकार का डाटासेट बार चार्ट, लाइन चार्ट आदि के लिए उपयोग किया जाता है।

6

Series Dataset

इस प्रकार के डेटासेट का उपयोग डेटा श्रृंखला बनाने और लाइन चार्ट बनाने में किया जाता है।

7

Series Collection Dataset

श्रृंखला डेटासेट की विभिन्न श्रेणियां श्रृंखला संग्रह डेटासेट में जोड़ी जाती हैं। इस प्रकार का डेटासेट XYLINE चार्ट के लिए उपयोग किया जाता है।

8

Create Chart

यह वह विधि है जिसे अंतिम चार्ट बनाने के लिए निष्पादित किया जाता है।

9

Frame/Image

चार्ट एक स्विंग फ़्रेम पर प्रदर्शित होता है या एक छवि बनाई जाती है।

आवेदन स्तर वास्तुकला

एप्लिकेशन स्तर वास्तुकला बताता है कि JFreeChart पुस्तकालय एक जावा अनुप्रयोग के अंदर कहां बैठता है।

क्लाइंट प्रोग्राम उपयोगकर्ता डेटा प्राप्त करता है और फिर यह मानक जावा और JFreeChart एपीआई का उपयोग आवश्यकताओं के आधार पर या तो एक फ्रेम के रूप में आउटपुट उत्पन्न करने के लिए करता है, जिसे सीधे एप्लिकेशन के अंदर या स्वतंत्र रूप से JPEG या PNG जैसे छवि प्रारूपों में प्रदर्शित किया जा सकता है।

इस अध्याय में, हम JFreeChart पुस्तकालय से कुछ महत्वपूर्ण संकुल, वर्गों और विधियों के बारे में चर्चा करेंगे। JFreeChart लाइब्रेरी का उपयोग करके विभिन्न प्रकार के चार्ट बनाते समय इन पैकेजों, कक्षाओं और विधियों का सबसे अधिक उपयोग किया जाता है।

चार्टफैक्टरी कक्षा

ChartFactory के तहत एक अमूर्त वर्ग है org.jfree.chartपैकेज। यह मानक चार्ट बनाने के लिए उपयोगिता विधियों का एक संग्रह प्रदान करता है।

निम्नलिखित कुछ महत्वपूर्ण विधियों की एक सूची है -

कक्षा का निर्माण करनेवाला

S.No विवरण
1

ChartFactory()

चार्टफैक्ट्री क्लास का डिफ़ॉल्ट कंस्ट्रक्टर।

कक्षा के तरीके

S.No तरीके और विवरण
1

createPieChart(java.lang.String title, PieDataset dataset, boolean legend, boolean tooltips, boolean urls)

यह विधि डिफ़ॉल्ट सेटिंग्स के साथ एक पाई चार्ट बनाती है। यह JfreeChart प्रकार की वस्तु देता है।

2

createPieChart3D(java.lang.String title, PieDataset dataset, boolean legend, boolean tooltips, boolean urls

यह विधि निर्दिष्ट डेटासेट का उपयोग करके 3 डी पाई चार्ट बनाती है।

3

createBarChart(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls)

तर्क java.lang.String श्रेणी AxisLabel X- अक्ष पर रखे गए मानों के लिए लेबल है। तर्क java.lang.String valueAxisLabel Y- अक्ष पर रखे गए मानों के लिए लेबल है।

यह विधि एक बार चार्ट बनाती है।

4

createBarChart3D(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls)

यह विधि 3 डी प्रभाव के साथ एक बार चार्ट बनाती है। यह JfreeChart प्रकार की वस्तु देता है।

5

createLineChart(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls)

यह विधि डिफ़ॉल्ट सेटिंग्स के साथ एक लाइन चार्ट बनाती है।

6

createLineChart3D(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls)

यह विधि 3 डी प्रभाव के साथ एक लाइन चार्ट बनाती है।

7

createXYLineChart(java.lang.String title, java.lang.String xAxisLabel, java.lang.String yAxisLabel, XYDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls)

यह विधि डिफ़ॉल्ट सेटिंग्स के साथ XYDataset के आधार पर एक लाइन चार्ट बनाती है।

चार्टफ्रेम क्लास

Org.jfree.chart पैकेज के तहत चार्टफ्रेम क्लास, सभी फ्रेम संबंधित कार्यों और उपयोगिताओं को प्रदान करता है। चार्टफ्रैम क्लास पैरेंट क्लासेस जैसे फ्रेम, विंडो, कंटेनर और कंपोनेंट क्लासेस से फंक्शंस हासिल करती है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

ChartFrame (java.lang.Frame String, JfreeChart chart)

यह एक फ्रेम का निर्माण करता है।

2

Chart Frame (java.lang.Frame String, JfreeChart chart, boolean scrollpane)

यह एक फ्रेम का निर्माण करता है।

कक्षा विधि

S.No विधि और विवरण
1

getChartPanel()

यह विधि एक फ्रेम के लिए चार्ट पैनल लौटाती है।

चार्टपैनल क्लास

चार्टपैनल वर्ग से org.jfree.chart JfreeChart ऑब्जेक्ट को प्रदर्शित करने के लिए झूले GUI घटक के रूप में पैकेज का उपयोग किया जाता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

ChartPanel(JFreeChart chart)

यह कंस्ट्रक्टर एक पैनल का निर्माण करता है जो निर्दिष्ट चार्ट प्रदर्शित करता है।

2

ChartPanel(JFreeChart chart, boolean useBuffer)

यह कंस्ट्रक्टर एक चार्ट के साथ एक पैनल का निर्माण करता है।

3

ChartPanel(JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips)

यह कंस्ट्रक्टर JFreeChart पैनल का निर्माण करता है।

कक्षा विधि

S.No विधि और विवरण
1

setPreferredSize(java.awt.Dimension)

इस विधि का उपयोग java.awt का उपयोग करके फ्रेम के आकार को सेट करने के लिए किया जाता है। एक तर्क के रूप में आयाम वर्ग वस्तु। यह विधि javax.swing.JComponent से ली गई है।

चार्ट यूटिलिटीज क्लास

से चार्यूलाइट्स वर्ग org.jfree.chart पैकेज JFreeCharts की उपयोगिता विधियों का एक संग्रह प्रदान करता है, जिसमें चार्ट्स को छवि फ़ाइल स्वरूप जैसे PNG, JPEG और HTML छवि मानचित्र बनाने में परिवर्तित करने के तरीके शामिल हैं।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

ChartUtilities()

यह एक वर्ग का डिफ़ॉल्ट निर्माता है

कक्षा विधि

S.No विधि और विवरण
1

saveChartAsPNG(java.io.File file, JfreeChart chart, int width, int height)

यह विधि PNG प्रारूप में निर्दिष्ट फ़ाइल के लिए चार्ट को रूपांतरित और सहेजती है।

2

saveChartAsJPEG(java.io.File file, JfreeChart chart, int width, int height)

यह विधि जेपीईजी प्रारूप में निर्दिष्ट फ़ाइल के लिए चार्ट को रूपांतरित और सहेजती है।

JFreeChart वर्ग

JFreeChart वर्ग के तहत मुख्य वर्ग है org.jfree.chartपैकेज। यह वर्ग बार चार्ट डेटा सहित बार चार्ट, लाइन चार्ट, पाई चार्ट और Xy प्लॉट बनाने के लिए JFreeChart विधि प्रदान करता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

JfreeChart(Plot plot)

यह निर्माता आपूर्ति किए गए भूखंड के आधार पर एक नया चार्ट बनाता है।

2

JfreeChart(java.lang.String title, java.awt.Font titleFont, Plot plot, boolean createLegend)

यह निर्माता दिए गए शीर्षक और कथानक के साथ एक नया चार्ट बनाता है।

3

JfreeChart(java.lang.String title, Plot plot)

यह निर्माता दिए गए शीर्षक और कथानक के साथ एक नया चार्ट बनाता है।

कक्षा विधि

S.No विधि और विवरण
1

getXYPlot()

इस विधि के रूप में प्लॉट चार्ट देता है XYPlot। XYPolt का उपयोग करते हुए, हम xy चार्ट पर कुछ उपयोगिता संचालन कर सकते हैं।

PiePlot वर्ग

इस वर्ग का एक हिस्सा है org.jfree.chart.plotपैकेज और एक ही पैकेज से प्लॉट वर्ग का विस्तार करता है। यह वर्ग पाई प्लॉट बनाने के तरीके प्रदान करता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

PiePlot()

यह एक नया कथानक बनाता है।

2

PiePlot(PieDataset dataset)

यह एक प्लॉट बनाता है जो निर्दिष्ट डेटासेट के लिए पाई चार्ट बनाता है।

कक्षा विधि

S.No विधि और विवरण
1

setStartAngle(double angle)

यह विधि प्रारंभिक कोण सेट करती है और सभी पंजीकृत श्रोताओं को प्लॉटचेंजइवेंट भेजती है

PiePlot3D क्लास

PiePlot3D वर्ग एक ही पैकेज के तहत PiePlot वर्ग का एक उपवर्ग है। इसलिए, इस वर्ग में PiePlot वर्ग जैसी ही विशेषताएं हैं, सिवाय इसके कि इसका उपयोग 3D प्लॉट बनाने के लिए किया जाता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

PiePlot3D()

यह कंस्ट्रक्टर बिना डेटासेट के एक नया उदाहरण बनाता है।

2

PiePlot3D(PieDataset dataset)

यह निर्माता एक निर्दिष्ट डेटासेट का उपयोग करके तीन आयामी प्रभाव के साथ एक पाई चार्ट बनाता है।

कक्षा विधि

S.No विधि और विवरण
1

setForegroundAlpha(float alpha)

यह भूखंड के लिए अल्फा-पारदर्शिता सेट करता है और सभी पंजीकृत श्रोताओं को प्लॉटचेंजइवेंट भेजता है। यह मूल प्लॉट वर्गों में से एक से लिया गया है।

2

setInteriorGap(double percent)

यह आंतरिक अंतर को निर्धारित करता है और सभी पंजीकृत श्रोताओं को एक प्लॉटचेंजईवेंट भेजता है। यह पाई प्लॉट के किनारों और स्वयं प्लॉट क्षेत्र के बीच के स्थान को नियंत्रित करता है (यानी, वह क्षेत्र जहां अनुभाग लेबल दिखाई देते हैं)। यह विधि मूल वर्ग PiePlot से ली गई है।

प्लॉटऑरिएशन क्लास

यह एक क्रमबद्ध श्रेणी है जिसमें उपलब्ध है org.jfree.chart.plotपैकेज और इसका उपयोग 2D प्लॉट के उन्मुखीकरण को दिखाने के लिए किया जाता है। अभिविन्यास या तो हो सकता हैvertical या horizontal। यह Y- अक्ष के उन्मुखीकरण को निर्धारित करता है। एक पारंपरिक भूखंड में एक ऊर्ध्वाधर Y- अक्ष होता है।

फील्ड सारांश

S.No प्रकार फ़ील्ड और विवरण
1 PlotOrientation HORIZONTAL एक भूखंड के लिए जहां रेंज अक्ष (Y- अक्ष) क्षैतिज है।
2 PlotOrientation VERTICALएक भूखंड के लिए जहां रेंज अक्ष (Y- अक्ष) ऊर्ध्वाधर है। यह डिफ़ॉल्ट अभिविन्यास है।

कक्षा विधि

S.No विधि और विवरण
1

isHorizontal()

यदि यह अभिविन्यास HORIZONTAL है, और गलत है, तो यह विधि सही है।

2

isVertical()

यदि यह अभिविन्यास VERTICAL है, और अन्यथा गलत है, तो यह विधि सही है।

XYPlot वर्ग

यह एक सामान्य वर्ग में उपलब्ध है org.jfree.chart.plotपैकेज और इसका उपयोग (x, y) जोड़े के रूप में डेटा की साजिश रचने के लिए किया जाता है। यह प्लॉट किसी अन्य वर्ग के डेटा का उपयोग कर सकता है जो XYDataSet इंटरफ़ेस को लागू करता है। XYPlot प्लॉट पर प्रत्येक बिंदु को खींचने के लिए एक XYItemRenderer का उपयोग करता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

XYPlot()

यह ठेकेदार कोई नया XYPlot उदाहरण नहीं डेटासेट, कोई कुल्हाड़ी और कोई रेंडरर नहीं बनाता है।

2

XYPlot(XYDataset dataset, ValueAxis domainAxis, ValueAxis rangeAxis, XYItemRenderer रेंडरर)

यह निर्माता निर्दिष्ट डेटासेट, अक्ष और रेंडर के साथ एक नया प्लॉट बनाता है।

कक्षा विधि

S.No विधि और विवरण
1

setRenderer(XYItemRenderer रेंडरर)

यह विधि प्राथमिक डेटासेट के लिए रेंडरर सेट करती है और सभी पंजीकृत श्रोताओं के लिए एक परिवर्तन घटना भेजती है।

नंबरअक्सिस क्लास

यह कक्षा में उपलब्ध है org.jfree.chart.axisपैकेज और यह किसी भी अक्ष के संख्यात्मक डेटा तक पहुंच सकता है। जब हम किसी अक्ष की सीमा को डिफ़ॉल्ट रूप से सेट करते हैं, तो यह डेटा की सीमा के अनुसार फिट बैठता है। लेकिन NumberAxis, वर्ग का उपयोग करके हम निम्न मार्जिन और डोमेन और रेंज कुल्हाड़ियों के ऊपरी मार्जिन को सेट कर सकते हैं।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

NumberAxis( )

यह NumberAxis का डिफ़ॉल्ट कंस्ट्रक्टर है।

2

NumberAxis( java.lang.String label)

कंस्ट्रक्टर NumberAxis डिफ़ॉल्ट मान का उपयोग करता है जहाँ आवश्यक हो।

कक्षा विधि

S.No विधि और विवरण
1

setLowerMargin(double margin)

यह अक्ष के लिए कम मार्जिन सेट करता है (अक्ष सीमा के प्रतिशत के रूप में) और एक भेजता है AxisChangeEventसभी पंजीकृत श्रोताओं के लिए। इस विधि को कक्षा ValueAxis के मूल वर्ग से लिया गया है।

2

setUpperMargin(double margin)

यह अक्ष के लिए ऊपरी मार्जिन सेट करता है (अक्ष सीमा के प्रतिशत के रूप में) और एक भेजता है AxisChangeEventसभी पंजीकृत श्रोताओं के लिए। यह विधि ValueAxis क्लास में भी मौजूद है।

XYLineAndShapeRenderer वर्ग

यह वह वर्ग है, जिसके तहत उपलब्ध है org.jfree.chart.renderer.xyपैकेज, जो लाइनों के साथ डेटा बिंदुओं को जोड़ने का ध्यान रखता है और प्रत्येक डेटा बिंदु पर आकृतियों को खींचता है। यह रेंडरर वर्ग के साथ उपयोग के लिए डिज़ाइन किया गया हैXYPlot कक्षा।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

XYLineAndShapeRenderer()

यह एक नई रेंडरर बनाता है जिसमें दोनों लाइनें और आकार दिखाई देते हैं।

2

XYLineAndShapeRenderer (बूलियन लाइन्स, बूलियन शेप्स)

यह विशिष्ट संपत्ति के साथ एक नया रेंडर बनाता है।

कक्षा विधि

S.No विधि और विवरण
1

setSeriesPaint(int series, java.awt.Paint paint)

यह विधि एक श्रृंखला के लिए उपयोग किए जाने वाले पेंट को सेट करती है और ए भेजती है RendererChangeEventसभी पंजीकृत श्रोताओं के लिए। यह विधि JFreeChart API में रेंडरर पैकेज से AbstratRenderer अमूर्त वर्ग से ली गई है।

2

setSeriesStroke(int series, java.awt.Stroke stroke)

यह विधि एक श्रृंखला के लिए उपयोग किए जाने वाले स्ट्रोक को सेट करती है और भेजती है RendererChangeEventसभी पंजीकृत श्रोताओं के लिए। यह विधि AbstratRenderer अमूर्त वर्ग से ली गई है, जो इस पैकेज का सुपर क्लास है।

XYItemRenderer सामान्य डेटासेट

यह एक XYPlot पर एकल (x, y) आइटम के प्रारूप को प्रस्तुत करने के लिए एक इंटरफ़ेस है। पैकेज हैorg.Jfree.data.general, जिसमें चार्ट बनाने के लिए विभिन्न प्रकार के डेटासेट को परिभाषित करने के लिए कक्षाएं और इंटरफेस हैं।

PieDataset

यह एक सामान्य उद्देश्य डेटासेट के रूप में उपयोग किया जाने वाला इंटरफ़ेस है, जहाँ मान कुंजियों से जुड़े होते हैं। जैसा कि नाम से पता चलता है, आप पाई चार्ट के डेटा की आपूर्ति करने के लिए इस डेटासेट का उपयोग कर सकते हैं। यह इंटरफ़ेस KeyedValues ​​और DataSet इंटरफेस का विस्तार करता है। इस इंटरफ़ेस के लिए उपयोग किए जाने वाले सभी तरीके KeyedValues, Values ​​और Dataset इंटरफेस से लिए गए हैं।

DefaultPieDataset क्लास

यह PieDataset इंटरफ़ेस का डिफ़ॉल्ट कार्यान्वयन वर्ग है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

DefaultPieDataset()

यह कंस्ट्रक्टर शुरू में एक नया डेटासेट बनाता है, जो खाली है।

2

DefaultPieDataset(KeyedValues data)

यह एक से डेटा कॉपी करके एक नया डेटासेट बनाता है KeyedValues उदाहरण।

कक्षा विधि

S.No विधि और विवरण
1

setValue(java.lang.Comparable key, double value)

यह एक कुंजी के लिए डेटा मान सेट करता है और एक भेजता है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

2

setValue(java.lang.Comparable key, java.lang.Number value)

यह एक कुंजी के लिए डेटा मान सेट करता है और एक भेजता है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

सीरीज़ अपवाद कक्षा

यह एक अपवाद वर्ग है। यह डेटासेट में डेटा की समय श्रृंखला में एक अपवाद उत्पन्न करता है। अपवाद डुप्लिकेट या अमान्य डेटा की घटना पर उठाए जाते हैं। समय श्रृंखला डुप्लिकेट के साथ लागू नहीं होनी चाहिए और प्रारूप मान्य होना चाहिए।

DefaultCategoryDataset

यह श्रेणीडैटसेट इंटरफ़ेस का एक डिफ़ॉल्ट कार्यान्वयन वर्ग है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

DefaultCategoryDataset()

यह कंस्ट्रक्टर नए खाली डेटासेट बनाता है।

कक्षा विधि

S.No विधि और विवरण
1

addValue(double value, java.lang.Comparable rowKey, java.lang.Comparable columnKey)

यह विधि तुलनीय कुंजी का उपयोग करके तालिका में एक मान जोड़ता है।

2

addValue(java.lang.Number value, java.lang.Comparable rowKey, java.lang.Comparable columnKey)

यह विधि तालिका में एक मान जोड़ता है।

3

setValue(double value, java.lang.Comparable rowKey, java.lang.Comparable columnKey)

यह विधि तालिका में एक मान जोड़ती या अपडेट करती है और भेजती है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

4

setValue(java.lang.Number value, java.lang.Comparable rowKey, java.lang.Comparable columnKey)

यह विधि तालिका में एक मान जोड़ती या अपडेट करती है और भेजती है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

विभिन्न तरीकों और क्षेत्रों के बारे में अधिक जानकारी के लिए JFreeChart API देखें।

श्रृंखला डेटासेट

श्रृंखला डेटासेट का उपयोग XY चार्ट द्वारा किया जाता है। पैकेज हैorg.Jfree.data.xy, जिसमें एक्स चार्ट्स से संबंधित कक्षाएं और इंटरफेस शामिल हैं। कोर इंटरफ़ेस XYDataset है।

XYDataset

यह एक इंटरफ़ेस है जिसके माध्यम से (x, y) आइटम के रूप में डेटा तक पहुँचा जा सकता है। जैसा कि नाम से पता चलता है, आप XY चार्ट की सेवा के लिए इस डेटासेट का उपयोग कर सकते हैं। इस इंटरफ़ेस के कुछ तरीके SeriesDateset इंटरफ़ेस से लिए गए हैं।

XYZDataset

यह एक इंटरफ़ेस है जिसके माध्यम से (x, y, z) आइटम के रूप में डेटा एक्सेस किया जा सकता है। जैसा कि नाम से पता चलता है, आप XYZ चार्ट की सेवा के लिए इस डेटासेट का उपयोग कर सकते हैं। इस इंटरफ़ेस के कुछ तरीके SeriesDateset से लिए गए हैं।

XYSeries

यह एक वर्ग है, जो फॉर्म (x, y) में शून्य या अधिक डेटा आइटम के अनुक्रम का प्रतिनिधित्व करता है। डिफ़ॉल्ट रूप से, श्रृंखला के आइटमों को x- मान द्वारा आरोही क्रम में क्रमबद्ध किया जाता है, और डुप्लिकेट x-मानों की अनुमति दी जाती है। कंस्ट्रक्टर में छंटनी और डुप्लिकेट दोनों को बदला जा सकता है। लापता मूल्यों का प्रतिनिधित्व करने के लिए Y- मूल्यों को शून्य के रूप में निरूपित किया जा सकता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

XYSeries(java.lang.Comparable key)

यह निर्माता एक नई खाली श्रृंखला बनाता है।

2

XYSeries(java.lang.Comparable key, boolean autoSort)

यह एक नई खाली श्रृंखला का निर्माण करता है, जिसमें अनुरोध के अनुसार ऑटो-प्रकार के ध्वज सेट होते हैं, और डुप्लिकेट मानों की अनुमति होती है।

3

XYSeries(java.lang.Comparable key, boolean autoSort, boolean allowDuplicateXValues)

यह एक नई xy- श्रृंखला का निर्माण करता है जिसमें कोई डेटा नहीं है।

कक्षा विधि

S.No विधि और विवरण
1

add(double x, double y)

यह विधि श्रृंखला में डेटा आइटम जोड़ता है।

उपरोक्त विधि का उपयोग ट्यूटोरियल उदाहरण में किया जाता है। यदि आप शेष विधियों और क्षेत्रों को सीखना चाहते हैं, तो कृपया JFreeChart API देखें।

XYSeriesCollection

XYSeriesCollection class में AbstractIntervelDataset, AbstractXYDatset, AbstractSeriesDataset और AbstractDataset जैसे पैरेंट क्लास हैं। इस वर्ग की कुछ विधियाँ इस वर्ग के मूल वर्गों से संबंधित हैं।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

XYSeriesCollection()

यह एक खाली डेटासेट का निर्माण करता है।

2

XYSeriesCollection(XYSeries xyseries)

यह एक डाटासेट का निर्माण करता है और इसे एकल श्रृंखला के साथ पॉप्युलेट करता है।

कक्षा विधि

S.No विधि और विवरण
1

addSeries(XYSeries series)

यह विधि संग्रह में एक श्रृंखला जोड़ता है और एक भेजता है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

शेष विधियों और क्षेत्रों के लिए JFreeChart API देखें।

डिफ़ॉल्ट XYZDataset

DefaultXYZDataset क्लास में पैरेंट क्लासेस होते हैं जैसे AbstractIntervelDataset, AbstractXYDatset, AbstractSeriesDataset, AbstractDataset और AbstractXYZDataset। इस वर्ग की कुछ विधियाँ इस वर्ग के मूल वर्गों से संबंधित हैं।

क्लास कंस्ट्रक्टर

S.No कंस्ट्रक्टर और विवरण
1

DefaultXYZDataset()

यह एक खाली डेटासेट का निर्माण करता है।

कक्षा विधि

S.No विधि और विवरण
1

addSeries(java.lang.Comparable seriesKey, double[ ][ ] data )

यह विधि संग्रह में एक श्रृंखला जोड़ता है और एक भेजता है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

कृपया शेष विधियों और क्षेत्रों के लिए JFreeChart API देखें।

JFreeCharts में समय श्रृंखला

पैकेज है org.jfree.data.time। इस पैकेज में कक्षाएं और इंटरफ़ेस शामिल हैं, जो समय से संबंधित डेटा के लिए उपयोग किए जाते हैं।

समय श्रृंखला

यह वर्ग अवधि मानों के रूप में डेटा आइटम के एक अनुक्रम का प्रतिनिधित्व करता है, जहां अवधि रेगुलर टाइमपेरियोड अमूर्त वर्ग जैसे समय, दिन, घंटा, मिनट और दूसरी कक्षाओं के कुछ उदाहरण हैं।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

TimeSeries(java.lang.Comparable name)

यह नई खाली श्रृंखला बनाता है।

2

TimeSeries(java.lang.Comarable name, java.lang.String domain, java.lang.Strin range)

यह नई समय श्रृंखला बनाता है जिसमें कोई डेटा नहीं होता है।

कक्षा विधि

S.No विधि और विवरण
1

add(RegularTimePeriod period,double value)

यह विधि श्रृंखला में एक नया डेटा आइटम जोड़ता है।

शेष विधियों और क्षेत्रों के लिए JFreeChart API देखें।

TimeSeriesCollection

यह एक श्रेणी है जिसका उपयोग समय श्रृंखला वस्तुओं के संग्रह के रूप में किया जाता है। यह वर्ग XYDataset इंटरफ़ेस को लागू करता है, साथ ही साथ यह IntervelXYDataset इंटरफ़ेस का विस्तार करता है। यह श्रृंखला डेटा ऑब्जेक्ट्स को इकट्ठा करना सुविधाजनक बनाता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

TimeSeriesCollection()

यह डिफ़ॉल्ट समय क्षेत्र से बंधा एक खाली डेटासेट का निर्माण करता है।

2

TimeSeriesCollection(TimeSeries श्रृंखला)

यह एक एकल श्रृंखला वाले डेटासेट का निर्माण करता है (अधिक जोड़ा जा सकता है), डिफ़ॉल्ट समय क्षेत्र से बंधा हुआ।

3

TimeSeriesCollection(TimeSeries श्रृंखला, java.util.TimeZone ज़ोन)

यह एक विशेष श्रृंखला क्षेत्र से जुड़ी एकल श्रृंखला (अधिक जोड़ी जा सकती है) वाले डेटासेट का निर्माण करती है।

4

TimeSeriesCollection(java.util.TimeZone ज़ोन)

यह एक विशिष्ट समय क्षेत्र से बंधा एक खाली डेटासेट का निर्माण करता है।

कक्षा विधि

S.No विधि और विवरण
1

addSeries(TimeSeries श्रृंखला)

यह विधि संग्रह में एक श्रृंखला जोड़ता है और एक भेजता है DatasetChangeEvent सभी पंजीकृत श्रोताओं के लिए।

कृपया शेष विधियों और क्षेत्रों के लिए JFreeChart API देखें।

दूसरा

यह वर्ग एक विशेष दिन में एक दूसरे का प्रतिनिधित्व करता है। यह वर्ग अपरिवर्तनीय है, जो सभी RegularTimePeriod उपवर्ग के लिए एक आवश्यकता है।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

Second()

यह सिस्टम दिनांक / समय के आधार पर एक नया दूसरा निर्माण करता है।

2

Second(java.util.Date time)

यह निर्दिष्ट तिथि / समय और डिफ़ॉल्ट समय क्षेत्र से एक नया उदाहरण बनाता है।

3

Second(java.util.Date time, java.util.TimeZone zone, java.util.Locale locale)

यह आपूर्ति किए गए समय और समय क्षेत्र के आधार पर एक नया दूसरा बनाता है।

4

Second(int second, int minute, int hour, int day, int month, int year

यह एक नया सेकंड बनाता है।

5

Second(int second, Minute minute)

यह एक नया दूसरा निर्माण करता है।

कक्षा विधि

S.No विधि और विवरण
1

getSecond()

यह मिनट के भीतर दूसरा लौटाता है।

2

next()

यह वर्तमान दूसरे के बाद दूसरा रिटर्न देता है।

कृपया शेष विधियों और क्षेत्रों के लिए JFreeChart API देखें।

JFreeCharts में फ़्रेम

पैकेज है org.jfree.ui। यह पैकेज JFreeChart के JCommons API का है। इसमें पूर्व-कॉन्फ़िगर चार्ट के लिए फ्रेम बनाने के लिए उपयोग की जाने वाली उपयोगिता कक्षाएं शामिल हैं।

ApplicationFrame

यह सरल अनुप्रयोगों के लिए मुख्य फ्रेम बनाने के लिए एक आधार वर्ग है। फ़्रेम विंडो समापन घटनाओं के लिए सुनता है, और जेवीएम को बंद करके प्रतिक्रिया करता है। यह छोटे डेमो अनुप्रयोगों के लिए ठीक है। उद्यम अनुप्रयोगों के लिए, आपको कुछ अधिक मजबूत उपयोग करने की आवश्यकता है। इस वर्ग में मुख्य मुख्य विधियाँ घटक, कंटेनर, खिड़की, फ्रेम, और जेफ्रेम कक्षाओं से ली गई हैं।

कक्षा का निर्माण करनेवाला

S.No कंस्ट्रक्टर और विवरण
1

ApplicationFrame(java.lang.String title)

यह स्ट्रिंग शीर्षक के साथ एक एप्लीकेशन फ्रेम बनाता है।

यह वर्ग AWT फ्रेम्स बनाने में मदद करता है। यही कारण है कि हम इस वर्ग को इस ट्यूटोरियल उदाहरण में सुपर क्लास के रूप में उपयोग करते हैं।

जिन विधियों को लिया जाता है, वे मूल कक्षाएं एक फ्रेम खोलने, एक फ्रेम को बंद करने, आकार बदलने, पृष्ठभूमि या अग्रभूमि रंग बदलने और श्रोताओं के लिए उपयोग की जाती हैं।

RefineryUtilities

यह उपयोगकर्ता इंटरफ़ेस से संबंधित उपयोगिता विधियों का एक वर्ग संग्रह है।

कक्षा विधि

S.No विधि और विवरण
1

centerFrameOnScreen(java.awt.Window frame)

यह स्क्रीन के बीच में निर्दिष्ट फ्रेम को रखता है।

उपरोक्त विधि का उपयोग ट्यूटोरियल उदाहरण में किया जाता है। शेष विधियों और क्षेत्रों के लिए JFreeChart API देखें।

एक पाई चार्ट में, प्रत्येक सेक्टर की चाप लंबाई उस मात्रा के आनुपातिक है जो इसे दर्शाती है। यह अध्याय प्रदर्शित करता है - हम JFreeChart का उपयोग कैसे कर सकते हैंPie Chart व्यावसायिक डेटा के दिए गए सेट से।

व्यापार डेटा

निम्न उदाहरण पाई चार्ट की सहायता से मोबाइल बिक्री को दर्शाता है। निम्नलिखित विभिन्न मोबाइल ब्रांडों और उनकी बिक्री (प्रति दिन इकाइयों) की एक सूची है।

S.No मोबाइल ब्रांड बिक्री (प्रति दिन UNITS)
1 आई फ़ोन 5 एस 20
2 सैमसंग ग्रैंड 20
3 मोटो जी 40
4 नोकिया लूमिया 10

AWT आधारित अनुप्रयोग

ऊपर दी गई जानकारी का उपयोग करके पाई चार्ट बनाने के लिए कोड निम्नलिखित है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में पाई चार्ट को एम्बेड करने में मदद करता है।

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
 
public class PieChart_AWT extends ApplicationFrame {
   
   public PieChart_AWT( String title ) {
      super( title ); 
      setContentPane(createDemoPanel( ));
   }
   
   private static PieDataset createDataset( ) {
      DefaultPieDataset dataset = new DefaultPieDataset( );
      dataset.setValue( "IPhone 5s" , new Double( 20 ) );  
      dataset.setValue( "SamSung Grand" , new Double( 20 ) );   
      dataset.setValue( "MotoG" , new Double( 40 ) );    
      dataset.setValue( "Nokia Lumia" , new Double( 10 ) );  
      return dataset;         
   }
   
   private static JFreeChart createChart( PieDataset dataset ) {
      JFreeChart chart = ChartFactory.createPieChart(      
         "Mobile Sales",   // chart title 
         dataset,          // data    
         true,             // include legend   
         true, 
         false);

      return chart;
   }
   
   public static JPanel createDemoPanel( ) {
      JFreeChart chart = createChart(createDataset( ) );  
      return new ChartPanel( chart ); 
   }

   public static void main( String[ ] args ) {
      PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" );  
      demo.setSize( 560 , 367 );    
      RefineryUtilities.centerFrameOnScreen( demo );    
      demo.setVisible( true ); 
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं PieChart_AWT.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac PieChart_AWT.java $java PieChart_AWT

यदि सब कुछ ठीक है, तो यह निम्नलिखित पाई ग्राफ़ को उत्पन्न करने के लिए संकलित करेगा और चलाएगा -

यदि आपको किसी एप्लिकेशन में अपना चार्ट एम्बेड करने की आवश्यकता नहीं है, तो आप कमांड प्रॉम्प्ट पर चार्ट चित्र बना सकते हैं। JFreeChart आपको JPG या PNG प्रारूपों में चार्ट छवियों को सहेजने की अनुमति देता है।

JPEG छवि निर्माण

कमांड लाइन से JPEG इमेज जेनरेट करने के लिए उपरोक्त उदाहरण को फिर से लिखते हैं। JFreeChart पुस्तकालय द्वारा उपलब्ध कराए गए दो एपीआई निम्नलिखित हैं, जिनका उपयोग आप अपनी आवश्यकता के अनुसार PNG या JPEG छवि बनाने के लिए कर सकते हैं।

  • saveChartAsPNG() - पीएनजी प्रारूप में छवि को बचाने के लिए एपीआई।

  • saveChartAsJPEG() - JPEG प्रारूप में छवि को बचाने के लिए एपीआई।

import java.io.*;

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class PieChart {
   
   public static void main( String[ ] args ) throws Exception {
      DefaultPieDataset dataset = new DefaultPieDataset( );
      dataset.setValue("IPhone 5s", new Double( 20 ) );
      dataset.setValue("SamSung Grand", new Double( 20 ) );
      dataset.setValue("MotoG", new Double( 40 ) );
      dataset.setValue("Nokia Lumia", new Double( 10 ) );

      JFreeChart chart = ChartFactory.createPieChart(
         "Mobile Sales",   // chart title
         dataset,          // data
         true,             // include legend
         true,
         false);
         
      int width = 640;   /* Width of the image */
      int height = 480;  /* Height of the image */ 
      File pieChart = new File( "PieChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं PieChart.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac PieChart.java $java PieChart

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा PieChart.jpeg अपनी वर्तमान निर्देशिका में।

यह अध्याय दर्शाता है कि आप JFreeChart का उपयोग कैसे कर सकते हैं Bar Chart व्यावसायिक डेटा के दिए गए सेट से।

एक बार चार्ट विभिन्न श्रेणियों में तुलना दिखाने के लिए विभिन्न अभिविन्यास (क्षैतिज या ऊर्ध्वाधर) सलाखों का उपयोग करता है। चार्ट का एक अक्ष (डोमेन अक्ष) विशिष्ट डोमेन की तुलना करता है, और अन्य अक्ष (रेंज अक्ष) असतत मूल्यों का प्रतिनिधित्व करता है।

व्यापार डेटा

निम्न उदाहरण में बार चार्ट की सहायता से विभिन्न कार आँकड़ों को दर्शाया गया है। निम्नलिखित कार ब्रांडों की सूची के साथ-साथ उनकी अलग-अलग विशेषताएं हैं, जिन्हें हम बार चार्ट का उपयोग करके दिखाएंगे -

गाड़ी स्पीड प्रयोक्ता श्रेणी millage सुरक्षा
Fiat 1.0 3.0 5.0 5.0
Audi 5.0 6.0 10.0 4.0
Ford 4.0 2.0 3.0 6.0

AWT आधारित अनुप्रयोग

निम्नलिखित दी गई जानकारी से बार चार्ट बनाने के लिए कोड है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में बार चार्ट एम्बेड करने में मदद करता है।

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 

public class BarChart_AWT extends ApplicationFrame {
   
   public BarChart_AWT( String applicationTitle , String chartTitle ) {
      super( applicationTitle );        
      JFreeChart barChart = ChartFactory.createBarChart(
         chartTitle,           
         "Category",            
         "Score",            
         createDataset(),          
         PlotOrientation.VERTICAL,           
         true, true, false);
         
      ChartPanel chartPanel = new ChartPanel( barChart );        
      chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) );        
      setContentPane( chartPanel ); 
   }
   
   private CategoryDataset createDataset( ) {
      final String fiat = "FIAT";        
      final String audi = "AUDI";        
      final String ford = "FORD";        
      final String speed = "Speed";        
      final String millage = "Millage";        
      final String userrating = "User Rating";        
      final String safety = "safety";        
      final DefaultCategoryDataset dataset = 
      new DefaultCategoryDataset( );  

      dataset.addValue( 1.0 , fiat , speed );        
      dataset.addValue( 3.0 , fiat , userrating );        
      dataset.addValue( 5.0 , fiat , millage ); 
      dataset.addValue( 5.0 , fiat , safety );           

      dataset.addValue( 5.0 , audi , speed );        
      dataset.addValue( 6.0 , audi , userrating );       
      dataset.addValue( 10.0 , audi , millage );        
      dataset.addValue( 4.0 , audi , safety );

      dataset.addValue( 4.0 , ford , speed );        
      dataset.addValue( 2.0 , ford , userrating );        
      dataset.addValue( 3.0 , ford , millage );        
      dataset.addValue( 6.0 , ford , safety );               

      return dataset; 
   }
   
   public static void main( String[ ] args ) {
      BarChart_AWT chart = new BarChart_AWT("Car Usage Statistics", 
         "Which car do you like?");
      chart.pack( );        
      RefineryUtilities.centerFrameOnScreen( chart );        
      chart.setVisible( true ); 
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं BarChart_AWT.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac BarChar_AWT.java $java BarChart_AWT

यदि सब कुछ ठीक है, तो यह निम्नलिखित बार ग्राफ को उत्पन्न करने के लिए संकलित करेगा और चलाएगा -

JPEG छवि निर्माण

कमांड लाइन से JPEG इमेज जेनरेट करने के लिए उपरोक्त उदाहरण को फिर से लिखते हैं।

import java.io.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.ChartUtilities;

public class BarChart {
   
   public static void main( String[ ] args )throws Exception {
      final String fiat = "FIAT";
      final String audi = "AUDI";
      final String ford = "FORD";
      final String speed = "Speed";
      final String millage = "Millage";
      final String userrating = "User Rating";
      final String safety = "safety";

      final DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
      dataset.addValue( 1.0 , fiat , speed );
      dataset.addValue( 3.0 , fiat , userrating );
      dataset.addValue( 5.0 , fiat , millage );
      dataset.addValue( 5.0 , fiat , safety );

      dataset.addValue( 5.0 , audi , speed );
      dataset.addValue( 6.0 , audi , userrating );
      dataset.addValue( 10.0 , audi , millage );
      dataset.addValue( 4.0 , audi , safety );

      dataset.addValue( 4.0 , ford , speed );
      dataset.addValue( 2.0 , ford , userrating );
      dataset.addValue( 3.0 , ford , millage );
      dataset.addValue( 6.0 , ford , safety );

      JFreeChart barChart = ChartFactory.createBarChart(
         "CAR USAGE STATIStICS", 
         "Category", "Score", 
         dataset,PlotOrientation.VERTICAL, 
         true, true, false);
         
      int width = 640;    /* Width of the image */
      int height = 480;   /* Height of the image */ 
      File BarChart = new File( "BarChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( BarChart , barChart , width , height );
   }
}

हमें BarChart.java फ़ाइल में उपरोक्त जावा कोड रखते हैं, और फिर इसे संकलित कमांड से संकलित करें और चलाएं -

$javac BarChart.java $java BarChart

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा BarChart.jpeg अपनी वर्तमान निर्देशिका में।

एक लाइन चार्ट या लाइन ग्राफ सीधे लाइन खंडों से जुड़े डेटा बिंदुओं (मार्कर) की एक श्रृंखला के रूप में जानकारी प्रदर्शित करता है। लाइन चार्ट दिखाता है कि समान समय आवृत्ति पर डेटा कैसे बदलता है।

यह अध्याय दर्शाता है कि हम JFreeChart का उपयोग कैसे कर सकते हैं Line Chart व्यावसायिक डेटा के दिए गए सेट से।

व्यापार डेटा

निम्नलिखित उदाहरण 1970 से शुरू होने वाले विभिन्न वर्षों में खोले गए स्कूलों की संख्या का रुझान दिखाने के लिए एक लाइन चार्ट तैयार करता है।

दिए गए डेटा निम्नानुसार हैं -

साल स्कूलों की संख्या
1970 15
1980 30
1990 60
2000 120
2013 240
2014 300

AWT आधारित अनुप्रयोग

नीचे दी गई जानकारी से लाइन चार्ट बनाने के लिए कोड है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में लाइन चार्ट एम्बेड करने में मदद करता है।

import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class LineChart_AWT extends ApplicationFrame {

   public LineChart_AWT( String applicationTitle , String chartTitle ) {
      super(applicationTitle);
      JFreeChart lineChart = ChartFactory.createLineChart(
         chartTitle,
         "Years","Number of Schools",
         createDataset(),
         PlotOrientation.VERTICAL,
         true,true,false);
         
      ChartPanel chartPanel = new ChartPanel( lineChart );
      chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
      setContentPane( chartPanel );
   }

   private DefaultCategoryDataset createDataset( ) {
      DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
      dataset.addValue( 15 , "schools" , "1970" );
      dataset.addValue( 30 , "schools" , "1980" );
      dataset.addValue( 60 , "schools" ,  "1990" );
      dataset.addValue( 120 , "schools" , "2000" );
      dataset.addValue( 240 , "schools" , "2010" );
      dataset.addValue( 300 , "schools" , "2014" );
      return dataset;
   }
   
   public static void main( String[ ] args ) {
      LineChart_AWT chart = new LineChart_AWT(
         "School Vs Years" ,
         "Numer of Schools vs years");

      chart.pack( );
      RefineryUtilities.centerFrameOnScreen( chart );
      chart.setVisible( true );
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं LineChart_AWT.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac LineChart_AWT.java $java LineChart_AWT

यदि सब कुछ ठीक है, तो यह निम्नलिखित रेखाचित्र को उत्पन्न करने के लिए संकलित और चलेगा -

JPEG छवि निर्माण

कमांड लाइन से JPEG इमेज जेनरेट करने के लिए उपरोक्त उदाहरण को फिर से लिखते हैं।

import java.io.*;

import org.jfree.chart.JFreeChart; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartUtilities; 
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class LineChart {

   public static void main( String[ ] args ) throws Exception {
      DefaultCategoryDataset line_chart_dataset = new DefaultCategoryDataset();
      line_chart_dataset.addValue( 15 , "schools" , "1970" );
      line_chart_dataset.addValue( 30 , "schools" , "1980" );
      line_chart_dataset.addValue( 60 , "schools" , "1990" );
      line_chart_dataset.addValue( 120 , "schools" , "2000" );
      line_chart_dataset.addValue( 240 , "schools" , "2010" ); 
      line_chart_dataset.addValue( 300 , "schools" , "2014" );

      JFreeChart lineChartObject = ChartFactory.createLineChart(
         "Schools Vs Years","Year",
         "Schools Count",
         line_chart_dataset,PlotOrientation.VERTICAL,
         true,true,false);

      int width = 640;    /* Width of the image */
      int height = 480;   /* Height of the image */ 
      File lineChart = new File( "LineChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG(lineChart ,lineChartObject, width ,height);
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं LineChart.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac LineChart.java $java LineChart

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और निष्पादित करेगा LineChart.jpeg अपनी वर्तमान निर्देशिका में।

XY चार्ट (स्कैटर) X और Y मानों की सूची वाली एक डेटा श्रृंखला पर आधारित है। प्रत्येक मूल्य जोड़ी (एक्स, वाई) एक समन्वय प्रणाली में एक बिंदु है। यहाँ, एक मान क्षैतिज (X) स्थिति निर्धारित करता है, और दूसरा ऊर्ध्वाधर (Y) स्थिति निर्धारित करता है। यह अध्याय प्रदर्शित करता है - हम JFreeChart का उपयोग कैसे कर सकते हैंXY Chart व्यावसायिक डेटा के दिए गए सेट से।

व्यापार डेटा

एक उदाहरण पर विचार करें जहां हम सभी प्रमुख ब्राउज़रों के लिए XY चार्ट बनाना चाहते हैं। यहां विभिन्न प्रदर्शन स्कोर विभिन्न श्रेणियों के लोगों से लिए गए हैं, जैसा कि नीचे दिखाया गया है -

Firefox श्रेणी (एक्स) स्कोर (वाई)
1.0 1.0
2.0 4.0
3.0 3.0
Chrome श्रेणी (एक्स) स्कोर (वाई)
1.0 4.0
2.0 5.0
3.0 6.0
IE श्रेणी (एक्स) स्कोर (वाई)
3.0 4.0
4.0 5.0
5.0 4.0

AWT आधारित अनुप्रयोग

उपरोक्त दी गई जानकारी से XY चार्ट बनाने के लिए कोड निम्नलिखित है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में XY चार्ट एम्बेड करने में मदद करता है।

import java.awt.Color; 
import java.awt.BasicStroke; 

import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.xy.XYDataset; 
import org.jfree.data.xy.XYSeries; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 
import org.jfree.chart.plot.XYPlot; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.data.xy.XYSeriesCollection; 
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

public class XYLineChart_AWT extends ApplicationFrame {

   public XYLineChart_AWT( String applicationTitle, String chartTitle ) {
      super(applicationTitle);
      JFreeChart xylineChart = ChartFactory.createXYLineChart(
         chartTitle ,
         "Category" ,
         "Score" ,
         createDataset() ,
         PlotOrientation.VERTICAL ,
         true , true , false);
         
      ChartPanel chartPanel = new ChartPanel( xylineChart );
      chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
      final XYPlot plot = xylineChart.getXYPlot( );
      
      XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer( );
      renderer.setSeriesPaint( 0 , Color.RED );
      renderer.setSeriesPaint( 1 , Color.GREEN );
      renderer.setSeriesPaint( 2 , Color.YELLOW );
      renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );
      renderer.setSeriesStroke( 1 , new BasicStroke( 3.0f ) );
      renderer.setSeriesStroke( 2 , new BasicStroke( 2.0f ) );
      plot.setRenderer( renderer ); 
      setContentPane( chartPanel ); 
   }
   
   private XYDataset createDataset( ) {
      final XYSeries firefox = new XYSeries( "Firefox" );          
      firefox.add( 1.0 , 1.0 );          
      firefox.add( 2.0 , 4.0 );          
      firefox.add( 3.0 , 3.0 );          
      
      final XYSeries chrome = new XYSeries( "Chrome" );          
      chrome.add( 1.0 , 4.0 );          
      chrome.add( 2.0 , 5.0 );          
      chrome.add( 3.0 , 6.0 );          
      
      final XYSeries iexplorer = new XYSeries( "InternetExplorer" );          
      iexplorer.add( 3.0 , 4.0 );          
      iexplorer.add( 4.0 , 5.0 );          
      iexplorer.add( 5.0 , 4.0 );          
      
      final XYSeriesCollection dataset = new XYSeriesCollection( );          
      dataset.addSeries( firefox );          
      dataset.addSeries( chrome );          
      dataset.addSeries( iexplorer );
      return dataset;
   }

   public static void main( String[ ] args ) {
      XYLineChart_AWT chart = new XYLineChart_AWT("Browser Usage Statistics",
         "Which Browser are you using?");
      chart.pack( );          
      RefineryUtilities.centerFrameOnScreen( chart );          
      chart.setVisible( true ); 
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं XYLineChart_AWT.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसा कि संकेत दिया गया है:

$javac XYLineChart_AWT.java $java XYLineChart_AWT

यदि सबकुछ ठीक है, तो यह निम्नलिखित XY ग्राफ को उत्पन्न करने के लिए संकलित करेगा और चलाएगा -

JPEG छवि निर्माण

कमांड लाइन से JPEG इमेज जेनरेट करने के लिए उपरोक्त उदाहरण को फिर से लिखते हैं।

import java.io.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYSeries;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.ChartUtilities; 

public class XYLineChart_image {

   public static void main( String[ ] args )throws Exception {
      final XYSeries firefox = new XYSeries( "Firefox" );
      firefox.add( 1.0 , 1.0 );
      firefox.add( 2.0 , 4.0 );
      firefox.add( 3.0 , 3.0 );
      
      final XYSeries chrome = new XYSeries( "Chrome" );
      chrome.add( 1.0 , 4.0 );
      chrome.add( 2.0 , 5.0 );
      chrome.add( 3.0 , 6.0 );
      
      final XYSeries iexplorer = new XYSeries( "InternetExplorer" );
      iexplorer.add( 3.0 , 4.0 );
      iexplorer.add( 4.0 , 5.0 );
      iexplorer.add( 5.0 , 4.0 );
      
      final XYSeriesCollection dataset = new XYSeriesCollection( );
      dataset.addSeries( firefox );
      dataset.addSeries( chrome );
      dataset.addSeries( iexplorer );

      JFreeChart xylineChart = ChartFactory.createXYLineChart(
         "Browser usage statastics", 
         "Category",
         "Score", 
         dataset,
         PlotOrientation.VERTICAL, 
         true, true, false);
      
      int width = 640;   /* Width of the image */
      int height = 480;  /* Height of the image */ 
      File XYChart = new File( "XYLineChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( XYChart, xylineChart, width, height);
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं XYLineChart_image.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac XYLineChart_image.java $java XYLineChart_image

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा XYLineChart.jpeg अपनी वर्तमान निर्देशिका में।

3 डी चार्ट वही हैं, जो त्रि-आयामी प्रारूप में दिखाई देते हैं। बेहतर प्रदर्शन और स्पष्ट जानकारी प्रदान करने के लिए आप इन चार्टों का उपयोग कर सकते हैं। एक 3 डी पाई चार्ट एक अच्छा 3 डी प्रभाव के साथ पाई चार्ट के समान है। थोड़ा अतिरिक्त कोड जोड़कर 3 डी प्रभाव प्राप्त किया जा सकता है, जो एक पाई चार्ट में 3 डी प्रभाव बनाने का ध्यान रखेगा।

3 डी पाई चार्ट

3 डी पाई चार्ट की मदद से मोबाइल बिक्री को चित्रित करने के लिए निम्नलिखित उदाहरण पर विचार करें। निम्नलिखित विभिन्न मोबाइल ब्रांडों और उनकी बिक्री (प्रति दिन इकाइयों) की एक सूची है।

S.No मोबाइल ब्रांड बिक्री (प्रति दिन UNITS)
1 आई फ़ोन 5 एस 20
2 सैमसंग ग्रैंड 20
3 मोटो जी 40
4 नोकिया लूमिया 10

ऊपर दी गई जानकारी से 3D पाई चार्ट बनाने के लिए कोड निम्नलिखित है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में पाई चार्ट को एम्बेड करने में मदद करता है।

import java.io.*; 

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.plot.PiePlot3D; 
import org.jfree.data.general.DefaultPieDataset; 
import org.jfree.chart.ChartUtilities;

public class PieChart3D {

   public static void main( String[ ] args )throws Exception {
      DefaultPieDataset dataset = new DefaultPieDataset( );             
      dataset.setValue( "IPhone 5s" , new Double( 20 ) );             
      dataset.setValue( "SamSung Grand" , new Double( 20 ) );             
      dataset.setValue( "MotoG" , new Double( 40 ) );             
      dataset.setValue( "Nokia Lumia" , new Double( 10 ) ); 

      JFreeChart chart = ChartFactory.createPieChart3D( 
         "Mobile Sales" ,  // chart title                   
         dataset ,         // data 
         true ,            // include legend                   
         true, 
         false);

      final PiePlot3D plot = ( PiePlot3D ) chart.getPlot( );             
      plot.setStartAngle( 270 );             
      plot.setForegroundAlpha( 0.60f );             
      plot.setInteriorGap( 0.02 );             
      int width = 640;   /* Width of the image */             
      int height = 480;  /* Height of the image */                             
      File pieChart3D = new File( "pie_Chart3D.jpeg" );                           
      ChartUtilities.saveChartAsJPEG( pieChart3D , chart , width , height );   
   }
}

आइए हम उपरोक्त जावा कोड को PieChart3D.java फ़ाइल में रखते हैं, और फिर इसे संकलित करें और इसे कमांड से चलाएं -

$javac PieChart3D.java $java PieChart3D

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा PieChart3D.jpeg निम्नलिखित 3 डी पाई चार्ट वाले -

3 डी बार चार्ट

एक 3 डी बार चार्ट एक अच्छा 3 डी प्रभाव के साथ बार चार्ट के समान है। थोड़ा अतिरिक्त कोड जोड़कर एक 3D प्रभाव प्राप्त किया जा सकता है, जो बार चार्ट में 3D प्रभाव बनाने का ध्यान रखेगा। निम्नलिखित उदाहरण पर विचार करें जो 3 डी बार चार्ट की सहायता से विभिन्न कार आँकड़ों को दर्शाता है। निम्नलिखित कार ब्रांडों की सूची के साथ-साथ उनकी अलग-अलग विशेषताएं हैं, जिन्हें हम बार चार्ट का उपयोग करके दिखाएंगे -

गाड़ी स्पीड प्रयोक्ता श्रेणी millage सुरक्षा
FIAT 1.0 3.0 5.0 5.0
AUDI 5.0 6.0 10.0 4.0
FORD 4.0 2.0 3.0 6.0

निम्नलिखित कोड उपरोक्त दी गई जानकारी से 3D बार चार्ट बनाता है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में बार चार्ट एम्बेड करने में मदद करता है।

import java.io.*; 

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.chart.ChartUtilities; 

public class BarChart3D {
   
   public static void main( String[ ] args )throws Exception {
      final String fait = "FAIT";              
      final String audi = "AUDI";              
      final String ford = "FORD";              
      final String speed = "Speed";              
      final String popular = "Popular";              
      final String mailage = "Mailage";              
      final String userrating = "User Rating";              
      final String safety = "safety";        
      final DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); 

      dataset.addValue( 1.0 , fait , speed );              
      dataset.addValue( 4.0 , fait , popular );              
      dataset.addValue( 3.0 , fait , userrating );              
      dataset.addValue( 5.0 , fait , mailage );              
      dataset.addValue( 5.0 , fait , safety );              
      
      dataset.addValue( 5.0 , audi , speed );              
      dataset.addValue( 7.0 , audi , popular );              
      dataset.addValue( 6.0 , audi , userrating );              
      dataset.addValue( 10.0 , audi , mailage );              
      dataset.addValue( 4.0 , audi , safety ); 
      
      dataset.addValue( 4.0 , ford , speed );              
      dataset.addValue( 3.0 , ford , popular );              
      dataset.addValue( 2.0 , ford , userrating );              
      dataset.addValue( 3.0 , ford , mailage );              
      dataset.addValue( 6.0 , ford , safety );                 
      
      JFreeChart barChart = ChartFactory.createBarChart3D(
         "Car Usage Statistics",             
         "Category",             
         "Score",             
         dataset,            
         PlotOrientation.VERTICAL,             
         true, true, false);
         
      int width = 640; /* Width of the image */              
      int height = 480; /* Height of the image */                              
      File barChart3D = new File( "barChart3D.jpeg" );                            
      ChartUtilities.saveChartAsJPEG( barChart3D, barChart, width, height);
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं BarChart3D.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac BarChart3D.java $java BarChart3

यदि आपके पर्यावरण के साथ सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल बनाने के लिए संकलित और चलेगा BarChart3D.jpeg निम्नलिखित 3 डी बार चार्ट वाले -

यह अध्याय दर्शाता है कि आप JFreeChart का उपयोग कैसे कर सकते हैं Bubble Chartव्यावसायिक डेटा के दिए गए सेट से। एक बबल चार्ट तीन आयामी तरीके से जानकारी प्रदर्शित करता है। एक बुलबुला उस जगह पर प्लॉट किया जाता है जहां (x, y) इंटरसेक्ट को समन्वयित करता है। बुलबुले का आकार एक्स और वाई अक्ष की सीमा या मात्रा के रूप में माना जाता है।

व्यापार डेटा

आइए हम विभिन्न व्यक्तियों के साथ उनकी आयु, वजन और कार्य क्षमता पर विचार करें। वोक क्षमता को उन घंटों की संख्या के रूप में माना जा सकता है जिन्हें चार्ट में बुलबुले के रूप में प्लॉट किया गया है।

वजन
AGE 30 40 50 60 70 80
10 4 WORK
20 5
30 10
40 8
50 9
60 6

AWT आधारित अनुप्रयोग

ऊपर दी गई जानकारी से बबल चार्ट बनाने के लिए कोड निम्नलिखित है। यह कोड आपको किसी भी AWT आधारित एप्लिकेशन में बबल चार्ट को एम्बेड करने में मदद करता है।

import java.awt.Color; 
import java.awt.Dimension; 

import javax.swing.JPanel; 

import org.jfree.chart.*; 
import org.jfree.chart.axis.NumberAxis; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.chart.plot.XYPlot; 
import org.jfree.chart.renderer.xy.XYItemRenderer; 
import org.jfree.data.xy.DefaultXYZDataset; 
import org.jfree.data.xy.XYZDataset; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities;
  
public class BubbleChart_AWT extends ApplicationFrame {

   public BubbleChart_AWT( String s ) {
      super( s );                 
      JPanel jpanel = createDemoPanel( );                 
      jpanel.setPreferredSize(new Dimension( 560 , 370 ) );                 
      setContentPane( jpanel ); 
   }

   private static JFreeChart createChart( XYZDataset xyzdataset ) {
      JFreeChart jfreechart = ChartFactory.createBubbleChart(
         "AGE vs WEIGHT vs WORK",                    
         "Weight",                    
         "AGE",                    
         xyzdataset,                    
         PlotOrientation.HORIZONTAL,                    
         true, true, false);
         
      XYPlot xyplot = ( XYPlot )jfreechart.getPlot( );                 
      xyplot.setForegroundAlpha( 0.65F );                 
      XYItemRenderer xyitemrenderer = xyplot.getRenderer( );
      xyitemrenderer.setSeriesPaint( 0 , Color.blue );                 
      NumberAxis numberaxis = ( NumberAxis )xyplot.getDomainAxis( );                 
      numberaxis.setLowerMargin( 0.2 );                 
      numberaxis.setUpperMargin( 0.5 );                 
      NumberAxis numberaxis1 = ( NumberAxis )xyplot.getRangeAxis( );                 
      numberaxis1.setLowerMargin( 0.8 );                 
      numberaxis1.setUpperMargin( 0.9 );
                     
      return jfreechart;
   }

   public static XYZDataset createDataset( ) {
      DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset(); 
      double ad[ ] = { 30 , 40 , 50 , 60 , 70 , 80 };                 
      double ad1[ ] = { 10 , 20 , 30 , 40 , 50 , 60 };                 
      double ad2[ ] = { 4 , 5 , 10 , 8 , 9 , 6 };                 
      double ad3[][] = { ad , ad1 , ad2 };                 
      defaultxyzdataset.addSeries( "Series 1" , ad3 );
                   
      return defaultxyzdataset; 
   }

   public static JPanel createDemoPanel( ) {
      JFreeChart jfreechart = createChart( createDataset( ) );                 
      ChartPanel chartpanel = new ChartPanel( jfreechart );
                       
      chartpanel.setDomainZoomable( true );                 
      chartpanel.setRangeZoomable( true );
                 
      return chartpanel;
   }

   public static void main( String args[ ] ) {
      BubbleChart_AWT bubblechart = new BubbleChart_AWT( "Bubble Chart_frame" );   
      bubblechart.pack( );                 
      RefineryUtilities.centerFrameOnScreen( bubblechart );                 
      bubblechart.setVisible( true ); 
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं BubbleChart_AWT.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac BubbleChart_AWT.java $java BubbleChart_AW

यदि सब कुछ ठीक है, तो यह निम्नलिखित बबल ग्राफ उत्पन्न करने के लिए संकलित करेगा और चलाएगा -

JPEG छवि निर्माण

कमांड लाइन से JPEG इमेज जेनरेट करने के लिए उपरोक्त उदाहरण को फिर से लिखते हैं।

import java.io.*;

import java.awt.Color; 

import org.jfree.chart.*; 
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.chart.ChartUtilities;

public class BubbleChart_image {
   
   public static void main( String args[ ] )throws Exception {
      DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset( );
      double ad[ ] = { 30 , 40 , 50 , 60 , 70 , 80 };
      double ad1[ ] = { 10 , 20 , 30 , 40 , 50 , 60 };
      double ad2[ ] = { 4 , 5 , 10 , 8 , 9 , 6 };
      double ad3[ ][ ] = { ad , ad1 , ad2 };
      defaultxyzdataset.addSeries( "Series 1" , ad3 );

      JFreeChart jfreechart = ChartFactory.createBubbleChart(
         "AGE vs WEIGHT vs WORK", 
         "Weight", 
         "AGE", 
         defaultxyzdataset, 
         PlotOrientation.HORIZONTAL, 
         true, true, false);

      XYPlot xyplot = ( XYPlot )jfreechart.getPlot( );
      xyplot.setForegroundAlpha( 0.65F );
      XYItemRenderer xyitemrenderer = xyplot.getRenderer( );
      xyitemrenderer.setSeriesPaint( 0 , Color.blue );
      NumberAxis numberaxis = ( NumberAxis )xyplot.getDomainAxis( );
      numberaxis.setLowerMargin( 0.2 );
      numberaxis.setUpperMargin( 0.5 );
      NumberAxis numberaxis1 = ( NumberAxis )xyplot.getRangeAxis( );
      numberaxis1.setLowerMargin( 0.8 );
      numberaxis1.setUpperMargin( 0.9 );

      int width = 560;   /* Width of the image */
      int height = 370;  /* Height of the image */ 
      File bubbleChart = new File("BubbleChart.jpeg"); 
      ChartUtilities.saveChartAsJPEG(bubbleChart,jfreechart,width,height);
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं BubbleChart_image.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac BubbleChart_image.java $java BubbleChart_image

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा BubbleChart.jpeg अपनी वर्तमान निर्देशिका में।

एक समय श्रृंखला चार्ट डेटा बिंदुओं के अनुक्रम को प्रदर्शित करता है, जो समय के बराबर अंतराल पर भिन्न होता है। यह अध्याय प्रदर्शित करता है - हम JFreeChart का उपयोग कैसे कर सकते हैंTime Series Chart व्यावसायिक डेटा के दिए गए सेट से।

व्यापार डेटा

आइए हम मानक जावा एपीआई का उपयोग करके उत्पन्न विभिन्न यादृच्छिक संख्याओं पर विचार करें Math.random()। हम इन संख्याओं का उपयोग एक टाइम सीरीज चार्ट बनाने के लिए करते हैं। आप अपनी वेबसाइट पर समय के अंतराल पर होने वाली त्रुटियों की कुल संख्या के लिए समान चार्ट उत्पन्न कर सकते हैं।

AWT आधारित अनुप्रयोग

निम्नलिखित उत्पन्न संख्याओं से टाइम सीरीज़ चार्ट बनाने के लिए कोड है Math.random() एक निश्चित समय पर आंतरिक।

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.general.SeriesException; 
import org.jfree.data.time.Second; 
import org.jfree.data.time.TimeSeries; 
import org.jfree.data.time.TimeSeriesCollection; 
import org.jfree.data.xy.XYDataset; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities;

public class TimeSeries_AWT extends ApplicationFrame {

   public TimeSeries_AWT( final String title ) {
      super( title );         
      final XYDataset dataset = createDataset( );         
      final JFreeChart chart = createChart( dataset );         
      final ChartPanel chartPanel = new ChartPanel( chart );         
      chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 370 ) );         
      chartPanel.setMouseZoomable( true , false );         
      setContentPane( chartPanel );
   }

   private XYDataset createDataset( ) {
      final TimeSeries series = new TimeSeries( "Random Data" );         
      Second current = new Second( );         
      double value = 100.0;         
      
      for (int i = 0; i < 4000; i++) {
         
         try {
            value = value + Math.random( ) - 0.5;                 
            series.add(current, new Double( value ) );                 
            current = ( Second ) current.next( ); 
         } catch ( SeriesException e ) {
            System.err.println("Error adding to series");
         }
      }

      return new TimeSeriesCollection(series);
   }     

   private JFreeChart createChart( final XYDataset dataset ) {
      return ChartFactory.createTimeSeriesChart(             
         "Computing Test", 
         "Seconds",              
         "Value",              
         dataset,             
         false,              
         false,              
         false);
   }

   public static void main( final String[ ] args ) {
      final String title = "Time Series Management";         
      final TimeSeries_AWT demo = new TimeSeries_AWT( title );         
      demo.pack( );         
      RefineryUtilities.positionFrameRandomly( demo );         
      demo.setVisible( true );
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं TimeSeries_AWT.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac TimeSeries_AWT.java $java TImeSeries_AWT

यदि सब कुछ ठीक है, तो यह निम्नलिखित समय श्रृंखला ग्राफ बनाने के लिए संकलित और चलाने के लिए होगा -

JPEG छवि निर्माण

कमांड लाइन से JPEG इमेज जेनरेट करने के लिए उपरोक्त उदाहरण को फिर से लिखते हैं।

import java.io.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.SeriesException;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.chart.ChartUtilities;

public class TimeSeriesChart {
   
   public static void main( final String[ ] args )throws Exception {
      final TimeSeries series = new TimeSeries( "Random Data" );
      Second current = new Second();
      double value = 100.0;
      
      for ( int i = 0 ; i < 4000 ; i++ ) {
         
         try {
            value = value + Math.random( ) - 0.5;
            series.add( current , new Double( value ) );
            current = ( Second ) current.next( );
         } catch ( SeriesException e ) {
            System.err.println( "Error adding to series" );
         }
      }
      
      final XYDataset dataset=( XYDataset )new TimeSeriesCollection(series);
      JFreeChart timechart = ChartFactory.createTimeSeriesChart(
         "Computing Test", 
         "Seconds", 
         "Value", 
         dataset,
         false, 
         false, 
         false);
         
      int width = 560;   /* Width of the image */
      int height = 370;  /* Height of the image */ 
      File timeChart = new File( "TimeChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( timeChart, timechart, width, height );
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं TimeSeriesChart.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac TimeSeriesChart.java $java TimeSeriesChart

यदि आपके पर्यावरण के साथ सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल बनाने के लिए संकलित और चलेगा TimeChart.jpeg अपनी वर्तमान निर्देशिका में फ़ाइल करें।

अब तक हमने अध्ययन किया कि स्थैतिक डेटा का उपयोग करके JFreeChart API का उपयोग करके विभिन्न प्रकार के चार्ट कैसे बनाए जाते हैं। लेकिन उत्पादन वातावरण में, डेटा को पूर्वनिर्धारित प्रारूप के साथ पाठ फ़ाइल के रूप में प्रदान किया जाता है, या यह सीधे डेटाबेस से आता है।

यह अध्याय समझाएगा - हम दिए गए स्थान से किसी दिए गए पाठ फ़ाइल से एक साधारण डेटा कैसे पढ़ सकते हैं और फिर अपनी पसंद का चार्ट बनाने के लिए JFreeChart का उपयोग करें।

व्यापार डेटा

गौर कीजिए कि हमारे पास एक फाइल है जिसका नाम है mobile.txt, विभिन्न मोबाइल ब्रांडों और उनकी बिक्री (प्रति दिन की इकाइयाँ) को एक साधारण अल्पविराम (,) द्वारा अलग किया जाता है -

Iphone 5S, 20   
Samsung Grand, 20   
MOTO G, 40  Nokia  
Lumia, 10

चार्ट जनरेशन फ़ाइल के आधार पर

मोबाइल में दी गई जानकारी के आधार पर पाई चार्ट बनाने के लिए कोड निम्नलिखित है -

import java.io.*; 

import java.util.StringTokenizer; 

import org.jfree.chart.ChartUtilities; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.general.DefaultPieDataset;

public class PieChart_File {
   
   public static void main( String[ ] args )throws Exception {
      
      String mobilebrands[ ] = {    
         "IPhone 5s" ,   
         "SamSung Grand" ,   
         "MotoG" ,    
         "Nokia Lumia" 
      };
      
      InputStream in = new FileInputStream( new File( "C:/temp/test.txt" ) );          
      BufferedReader reader = new BufferedReader(new InputStreamReader(in ) );          
      StringBuilder out = new StringBuilder();          
      String line;          
      DefaultPieDataset dataset = new DefaultPieDataset();          

      while (( line = reader.readLine() ) != null ) {
         out.append( line );
      }
      
      StringTokenizer s = new StringTokenizer( out.toString(), "," );
      int i = 0;      
      
      while( s.hasMoreTokens( ) && ( mobilebrands [i] != null ) ) {
         dataset.setValue(mobilebrands[i], Double.parseDouble( s.nextToken( ) ));
         i++;
      }
      
      JFreeChart chart = ChartFactory.createPieChart( 
         "Mobile Sales",    // chart title           
         dataset,           // data           
         true,              // include legend           
         true,           
         false);
      
      int width = 560;    /* Width of the image */          
      int height = 370;   /* Height of the image */                          
      File pieChart = new File( "pie_Chart.jpeg" );                        
      ChartUtilities.saveChartAsJPEG( pieChart, chart, width, height); 
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं PieChart_File.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac PieChart_File.java $java PieChart_File

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा PieChart.jpeg जिसमें निम्न चार्ट है।

यह अध्याय बताता है कि आप डेटाबेस तालिका से सरल डेटा कैसे पढ़ सकते हैं और फिर अपनी पसंद का चार्ट बनाने के लिए JFreeChart का उपयोग करें।

व्यापार डेटा

विचार करें कि हमारे पास निम्नलिखित MySQL टेबल mobile_tbl (mobile_brand VARCHAR (100) NOT NULL, unit_sale INT NO NULL) है;

गौर करें कि इस तालिका में निम्नलिखित रिकॉर्ड हैं -

मोबाइल ब्रांड यूनिट सेल्स
आई फ़ोन 5 एस 20
सैमसंग ग्रैंड 20
मोटो जी 40
नोकिया लूमिया 10

डेटाबेस का उपयोग कर चार्ट जनरेशन

MySQL डेटाबेस में test_db में उपलब्ध mobile_tbl तालिका में दी गई जानकारी के आधार पर पाई चार्ट बनाने के लिए कोड निम्नलिखित है। अपनी आवश्यकताओं के आधार पर, आप किसी अन्य डेटाबेस का उपयोग कर सकते हैं।

import java.io.*; 
import java.sql.*; 

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.general.DefaultPieDataset;

public class PieChart_DB {
   
   public static void main( String[ ] args )throws Exception {
      
      String mobilebrands[] = {
         "IPhone 5s",   
         "SamSung Grand",   
         "MotoG",            
         "Nokia Lumia" 
      };
      
      /* Create MySQL Database Connection */
      Class.forName( "com.mysql.jdbc.Driver" );
      Connection connect = DriverManager.getConnection( 
         "jdbc:mysql://localhost:3306/jf_testdb" ,     
         "root",     
         "root123");
      
      Statement statement = connect.createStatement( );
      ResultSet resultSet = statement.executeQuery("select * from mobile_data" );
      DefaultPieDataset dataset = new DefaultPieDataset( );
      
      while( resultSet.next( ) ) {
         dataset.setValue( 
         resultSet.getString( "mobile_brand" ) ,
         Double.parseDouble( resultSet.getString( "unit_sale" )));
      }
      
      JFreeChart chart = ChartFactory.createPieChart(
         "Mobile Sales",   // chart title           
         dataset,          // data           
         true,             // include legend          
         true,           
         false );

      int width = 560;    /* Width of the image */
      int height = 370;   /* Height of the image */ 
      File pieChart = new File( "Pie_Chart.jpeg" );
      ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
   }
}

आइए हम उपरोक्त जावा कोड को अंदर रखते हैं PieChart_DB.java फ़ाइल, और फिर संकलित करें और इसे कमांड से चलाएं जैसे कि -

$javac PieChart_DB.java $java PieChart_DB

यदि सब कुछ ठीक है, तो यह JPEG छवि फ़ाइल नाम बनाने के लिए संकलित और चलाने के लिए होगा Pie_Chart.jpeg निम्नलिखित चार्ट है।