2013-06-12 15 views
6

के लिए रेंज बदलें मैं वर्तमान में मल्टीचर्ट मॉडल का उपयोग कर रहा हूं और मेरे पास दो अलग-अलग वाई एक्स हैं। मैं दोनों अक्षों को बदलना चाहता हूं ताकि वे 0 से शुरू हो जाएं क्योंकि वर्तमान में वे सबसे छोटे वाई डेटा बिंदु से शुरू होते हैं।एक वाई अक्ष nvd3/d3

मैं कोशिश की है निम्नलिखित

chart.yAxis1 
tickFormat(d3.format(',.f')) 
.domain([0,max_y]); 

लेकिन यह does not कर

और

.forceY ([0, max_y]) 

यह मुझसे कहता है काम करने के लिए है कि वहाँ कोई forceY समारोह

कोई भी विचार लगते हैं ?

+0

आप एक समाधान मिला? मुझे एक ही समस्या है। धन्यवाद! – Acyra

उत्तर

1

.domain([0, max_y])scale ऑब्जेक्ट पर axis object पर उपयोग नहीं किया जाना चाहिए।

तो:

var yScale = d3.scale.linear().domain([0,max_y]) 
var yAxis = d3.svg.axis().scale(yScale) 

यह काम करना चाहिए; यदि नहीं, तो आपको jsfiddle के रूप में पोस्ट करना चाहिए।

+0

अरे, मेरा कोड डेटाबेस से डेटा पॉइंट का उपयोग करता है, इसलिए मुझे यकीन नहीं है कि मैं आपको अपने ग्राफ कैसे दिखा सकता हूं। मैंने var yscale1 = d3.scale.linear() डोमेन ([0,400000]) करने का प्रयास किया; लेकिन मुझे अनकॉटेड टाइप एरर मिलता है: अपरिभाषित विधि 'रैखिक' कॉल नहीं कर सकता। मैं अपने ग्राफ को बीटीडब्ल्यू बनाने के लिए एनवीडी 3 का उपयोग कर रहा हूं, सिर्फ डी 3 नहीं। – Siva

+0

console.log (JSON.stringify (डेटा)) -> कॉपी/पेस्ट –

10

आप लाइन या बार चार्ट के लिए NVD3 में न्यूनतम और अधिकतम मान मजबूर कर सकते हैं, जैसा कि नीचे की कोशिश:

chart.bars.forceY([0]); 

chart.lines.forceY([0,100]); 
+7

यह लाइन प्लस बार चार्ट पर काम करता है लेकिन बहु चार्ट पर काम नहीं करता है। – robingrindrod

+0

इस प्रतिक्रिया में एक टाइपो है, इसे 'chart.lines.forceY ([0, 100]) पढ़ना चाहिए;'। संपादित। मेरे लिए उपयोगी धन्यवाद! –

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