2011-08-27 19 views
5

असल में, मैं चाहता हूं कि उपयोगकर्ता ड्रॉप डाउन मेनू पर क्लिक करके ग्राफ़ के प्रकार को बदलने में सक्षम हो: BarRenderer, PieRenderer, आदि डेटा समान है। मुझे पता है कि मैं एक ही तत्व पर $ .jqplot() को फिर से कॉल कर सकता हूं, लेकिन फिर मुझे फिर से सभी सेटिंग पास करनी होंगी। और मेरे पृष्ठ में ग्राफ की एक चर संख्या है, जो उस विकल्प को बहुत खराब विकल्प बनाता है।jqplot renderer को गतिशील रूप से कैसे बदलें?

मुझे इसके बारे में एक लिंक मिला: http://groups.google.com/group/jqplot-users/browse_thread/thread/efe6511cd9496f16/5c625baf78d3b0ae लेकिन ऐसा लगता है कि मुझे अभी भी $ .jqplot() को कॉल करना होगा।

क्या ऐसा करने का कोई बेहतर तरीका है? और एक और छोटा सवाल: क्या यह सिर्फ मुझे है, या jqplot पर प्रलेखन खराब है? मुझे एक विकल्प खोजने के लिए कई स्थानों को देखना है (और कभी-कभी, विकल्प दस्तावेज नहीं है, या मुझे इसे किसी भी तरह से नहीं मिला)। आप jqplot का उपयोग कैसे करें सीखते हैं?

+0

अद्यतन डेटा और replot 'plot1.series [0] .data = newData; plot1.resetAxesScale(); plot1.replot(); 'http://stackoverflow.com/a/10901538/516748 – KCD

उत्तर

5

मुझे लगता है कि दस्तावेज़ ठीक हैं, लेकिन आपको इसके अंदर छिपी हुई विशेषताएं या क्विर्क मिलेगी जो दस्तावेज नहीं हैं। आईआईआरसी (यह थोड़ी देर हो चुकी है) आपको फिर से $ .jqplot() को कॉल करना होगा, लेकिन आपको पहले अपने लक्ष्य को (empty) करना होगा या आपको अतिरिक्त/गड़बड़ कर सकते हैं।

क्या तुम सच में अपने डेटा को बचाने के लिए और इसे अनुमति है क्या करने की जरूरत बाद में कहा जा:

//This isn't real jqplot syntax but it should give you a good idea of what I'm explaining 

var charts = [{name:"chart1",renderer:"pie",data:[[1,2],[2,3]]}] 
$('#graph').jqplot(charts[0]); 

//later 
charts[0].renderer = "bar"; 
$('#graph').empty().jqplot(charts[0]); 
+2

खाली कॉल() से पहले अपने चार्ट पर नष्ट() को कॉल करना सुनिश्चित करें या आपके पास मेमोरी लीक होगा। पहले कॉल द्वारा एक चर को jqplot पर लौटाए गए चार्ट को सहेजें, फिर "बाद में" अनुभाग में, chart.destroy() पर कॉल करें; साजिश के पुनर्निर्माण से पहले। –

संबंधित मुद्दे