मैं JFreeChart
का उपयोग करके जावा में TimeSeries
डेटा ग्राफ़ करने का प्रयास कर रहा हूं, हालांकि डेटा में डबल्स होते हैं जो Renjin
. TimeSeries
में डेटा जोड़ने का कोड इस प्रकार है:
for (int i=0; i<series2Values.length; i++) {
if (!Double.isNaN(series2Values[i])) {
series2.add(new Hour((int)times[i], new Day()), series2Values[i]);
} else {
series2.add(new Hour((int)times[i], new Day()), null);
}
}
final TimeSeriesCollection dataset2 = new TimeSeriesCollection();
dataset2.addSeries(series2);
JFreeChart chart2 = ChartFactory.createTimeSeriesChart(title, "Time (Hour)", "Vehicles Parked", dataset2, true, true, false);
ChartFrame frame2 = new ChartFrame(title, chart2, false);
frame2.pack();
frame2.setIconImage(img.getImage());
frame2.setVisible(true);
समस्या यह है कि जब भी डेटा का रेखांकन किया जाता है, तो X अक्ष पर समय 24 घंटे के सैन्य समय में प्रदर्शित होता है, और यदि time[]
सरणी में कोई डुप्लिकेट मान होता है, तो निम्न SeriesException
फेंक दिया जाता है:
Exception in thread "AWT-EventQueue-0" org.jfree.data.general.SeriesException: You are attempting to add an observation for the time period [6,12/7/2016] but the series already contains an observation for that time period. Duplicates are not permitted. Try using the addOrUpdate() method.
अपवाद द्वारा सुझाई गई addOrUpdate()
विधि उस समय के लिए पहले डेटा बिंदु को नया बनाने के बजाय 12 घंटे पहले ही अधिलेखित कर देगी। मैं इसके बजाय 12 घंटे के प्रारूप में डेटा प्रदर्शित करना चाहता हूं जिसमें एएम और पीएम दिखाया गया है।
क्या JFreeChart
के साथ ऐसा करने का कोई सुविधाजनक तरीका है, या कोड को बदलना अधिक सुविधाजनक होगा ताकि Renjin
पर मेरी कॉल 1 और 24 के बीच केवल सादे पूर्णांकों के बजाय कुछ स्वरूपित हो जाए? (उदाहरण के लिए पहले से ही स्वरूपित समय तार)?
1 उत्तर
मैं Renjin
से परिचित नहीं हूं, लेकिन से मिलीसेकंड का प्रतिनिधित्व करने वाला एक Date
मान मान रहा हूं। युग,
{ का प्रयोग करें
setDateFormatOverride()
अक्ष पर उपयुक्तSimpleDateFormat
, उदाaxis.setDateFormatOverride(new SimpleDateFormat("hh:mm"));
TimeSeries
" जाएगा सुनिश्चित करें ... कि प्रत्येक अवधि श्रृंखला में अधिकतम एक बार दिखाई दे।" यदि आने वाले मूल्य को सही ढंग से परिवर्तित किया जाता है तो यह विवादास्पद हो जाना चाहिए।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।
((DateAxis)chart2.getXYPlot().getDomainAxis()).setDateFormatOverride(new SimpleDateFormat("hh:mm a"));