मुझे JFreeChart ओवरलाइड ग्राफ़ के साथ कोई समस्या है। मैं JFreeChart 1.0.13 का उपयोग कर रहा हूँ। मैं जो करने की कोशिश कर रहा हूं ऐसा लगता है जैसे जेएफरी चार्ट के पुराने संस्करणों में करना आसान था?JFreeChart ओवरले के साथ सहायता
ग्राफ एक रेखा चार्ट और एक बार चार्ट दिखाता है। वाई अक्ष के लिए लाइन चार्ट द्वारा प्लॉट की गई डेटा रेंज 0-100 रेंज में है, और बार चार्ट के लिए अक्ष 0-5 रेंज में है।
व्यक्तिगत रूप से, जब मैं प्रत्येक चार्ट बाहर रखना और यह रंग है, वे बहुत अच्छी लग रही। यहाँ एक उदाहरण है:
बार चार्ट लाइन चार्ट
लेकिन जब मैं उन्हें ओवरले, बार चार्ट छोटा हो जाता है अविश्वसनीय रूप से बेकार देखने के लिए ... शायद क्योंकि दोनों डेटासेट के तराजू इसलिए अलग हैं।
उदाहरण:
क्या मैं सच में चाहते हैं दोनों डेटासेट के लिए श्रृंखला डेटा विभाजित है, और बाएं हाथ Y अक्ष पर रेखा चार्ट के लिए 0-100 रेंज को प्रदर्शित करने और बार चार्ट के लिए करने के लिए है नीचे दिए गए मेरे पहले उदाहरण में पूर्ण आकार प्रदर्शित किया गया है, लेकिन ग्राफ़ के दाईं ओर वाई अक्ष पक्ष पर प्रदर्शित 0-5 स्केल है।
ग्राफ बनाने के लिए, मैं पहली बार एक XYSeriesCollection का उपयोग कर बार चार्ट बनाने रहा हूँ, डेटा जोड़ने और साजिश बनाने ...
XYSeriesCollection histogramDataset= new XYSeriesCollection();
XYSeries xy= new XYSeries("Temp");
xy.add(100,0.0);
xy.add(101,0.3769791404875597);
histogramDataset.addSeries(xy);
...
final NumberAxis xAxis = new NumberAxis("Temperature C");
xAxis.setAutoRangeIncludesZero(false);
final ValueAxis yAxis = new NumberAxis("Percent Time above Temperature");
final XYItemRenderer renderer = new XYBarRenderer();
final XYPlot plot = new XYPlot((XYDataset) histogramDataset, xAxis, yAxis, renderer);
तो मैं एक समान तरीके से लाइन चार्ट बना सकते हैं और जोड़ने भूखंड के लिए दूसरी श्रृंखला ...
final XYSeries xy = new XYSeries("First");
final XYDataset xySeriesData = new XYSeriesCollection();
final XYItemRenderer xyLineRenderer = new XYLineAndShapeRenderer();
xyLineRenderer.setSeriesShape(0, new Line2D.Double(0.0, 0.0, 0.0, 0.0));
xyLineRenderer.setSeriesStroke(0, new BasicStroke(4.5f));
xy.add(100,100.0);
xy.add(101,100.0);
xyseriesData.add(xy);
plot.setDataset(1, xySeriesData);
plot.setRenderer(1, xyLineRenderer);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
मेरे संदेह है कि किसी भी तरह प्रत्येक ग्राफ यह खुद साजिश और एक साथ संयुक्त है की जरूरत है। क्या कोई मदद कर सकता है? मैं यहां क्या कर रहा हूं इस तरह कुछ है:
सिवाय इसके कि मैं बार चार्ट पृष्ठभूमि छवि नहीं चाहता हूं। एक्स अक्ष एक जैसा होना चाहिए, और वाई अक्ष सही पैमाने पर दाईं ओर होना चाहिए जो ग्राफ को पूर्ण आकार दिखाए जाने की अनुमति देता है।
किसी भी/सभी उत्तर की सराहना कर रहे हैं ...
http://www.jfree.org/jfreechart/ से संबद्ध नहीं है; सिर्फ एक संतुष्ट ग्राहक और कभी-कभी योगदानकर्ता। – trashgod
सही दिशा में धक्का के लिए धन्यवाद। जोड़ना: अंतिम ValueAxis yAxis = नया संख्या एक्सिस ("तापमान पर प्रतिशत समय"); \t \t plot.setRangeAxis (1, yAxis); plot.mapDatasetToRangeAxis (0, 1); MapDataSetToRange कुंजी था ... – Griff