डिंपल टाइम फॉर्मेट जुगलिंग

मैं बहुत ही उलझन में हूं जिस तरह से तारीखें डिंपल द्वारा नियंत्रित की जाती हैं (या शायद यह केवल डी 3 है)।

मेरी समस्या को दो प्रश्नों में विभाजित किया जा सकता है:

  1. My dates come as a column in my csv file in the format %Y-%m-%d %H:%M:%s. In order to convert them to date objects, I currently use the same loop I used to have in "vanilla" d3.

    data.forEach(function (d) {
       var format = d3.time.format("%Y-%m-%d %H:%M:%s");
       d.Date = format.parse(d.Date);
    });
    

    Is there a quicker way to do this with? Maybe with the timeField function? Or dateParseFormat? I might be wrong but those functions looks like helpers to handle dates.

  2. The main reason why I want to control my time objects is to be able to reformat them. Documentation seems to indicate that the tickFormat function can be used for this. Unfortunately I also failed at using it. My best guess:

    var x = myChart.addCategoryAxis("x", "Date");

    x.tickFormat(d3.time.format("%Y-%m"));//For example for a year-month format

केवल रिटर्न

x.tickFormat फ़ंक्शन नहीं है

बहुत बहुत धन्यवाद,

जेवियर

0

1 उत्तर

समय स्वरूपण समय अक्ष से संबंधित है। यदि आप समय धुरी का उपयोग करना चाहते हैं तो आपको अपने लूप की आवश्यकता नहीं है, बस उपयोग करें:

myChart.addTimeAxis("x", "Date", "%Y-%m-%d %H:%M:%s", "%Y-%m");

जहां "% वाई-% एम-% डी% एच:% एम:% एस" आपका इनपुट है और "% वाई-% एम" आपका आउटपुट प्रारूप है। "X.tickFormat एक फ़ंक्शन नहीं है" त्रुटि का कारण यह है कि यह नहीं है :)। यदि आप चाहें तो समय अक्ष द्वारा उपयोग किए गए टिक फॉरमेट को एक संपत्ति के रूप में सेट कर सकते हैं, लेकिन यदि आप उपरोक्त फैक्ट्री विधि का उपयोग करते हैं तो इसकी आवश्यकता नहीं है:

myTimeAxis.tickFormat = "%Y-%m";

लेकिन यह केवल एक समय धुरी के साथ काम करता है।

कार्रवाई में समय अक्ष का एक उदाहरण यहां पाया जा सकता है:

http://dimplejs.org/advanced_examples_viewer.html?id=advanced_time_axis

उम्मीद है की वो मदद करदे

जॉन

0
जोड़ा
बहुत बहुत धन्यवाद जॉन, सुपर स्पष्ट!
जोड़ा लेखक xav, स्रोत
इसलिए, यह लाइन/क्षेत्र चार्ट के लिए पूरी तरह से काम करता है, लेकिन अगर मैं बार चार्ट करना चाहता हूं, तो मुझे उचित बार चौड़ाई प्राप्त करने के लिए addCategoryAxis का उपयोग करने की आवश्यकता है। उस स्थिति में, क्या मैं अभी भी अपने लूप से बच सकता हूं? यह .addCategoryAxis ("x", "दिनांक", "% वाई-% एम-% डी% एच:% एम:% एस", "% बी% डी") लिखने जितना आसान नहीं लगता है; :)
जोड़ा लेखक xav, स्रोत
धन्यवाद, फ़्लोटिंग बार्विड्थ चरम दाएं और चरम बाएं पर बार ओवरफ्लो कर देगा। तो मुझे लगता है कि लूप पर वापस!
जोड़ा लेखक xav, स्रोत
मुझे डर नहीं लग रहा है. आप समय अक्ष पर फ़्लोटिंग बारविड्थ का उपयोग कर सकते हैं ( github.com/ PMSI-AlignAlytics/dimple/wiki/& hellip; ) यदि आप बार की चौड़ाई निर्दिष्ट करना चाहते हैं, अन्यथा आपको अपने लूप पर वापस जाने और श्रेणी अक्ष का उपयोग करने की आवश्यकता है।
जोड़ा लेखक John Kiernander, स्रोत
हां, आप सीमाओं को मैन्युअल रूप से सेट करने के लिए ओवरराइडमिन और ओवरराइडमैक्स का उपयोग कर सकते हैं, लेकिन अगर मैं आप थे तो मैं शायद लूप का उपयोग करूंगा।
जोड़ा लेखक John Kiernander, स्रोत