2013-08-27 11 views
19

अपने डेटा से गुणा करने के बिना% चिह्न के रूप में जोड़ने percents, उदाहरण के लिए, [10.1, 3.2, 5.4]d3.js: tickformat - 100

d3.format("0f") मुझे [10, 3, 5]

d3.format("0%") दे मुझे (100 से गुणा करता है) [1010%, 320%, 540%] दे देंगे होगा

मुझे [10%, 3%, 5%] कैसे मिल सकता है?

मैं समझ नहीं सकता है, जहां दूसरे मामले में * 100 पहले मामले करने के लिए + "%" जोड़ सकते हैं या खत्म करने के लिए

कोड के प्रासंगिक भागों:

var formatPercent = d3.format("0f"); 

var min = 0; 
var max = d3.max(data, function(d) { return + d[5]; }); 
max = Math.round(max * 1.2); // pad it 

//define the x-axis 
var xAxis = d3.svg.axis() 
       .scale(x) 
       .orient('top') 
       .ticks(6) 
       .tickFormat(formatPercent); 

और डेटा इस तरह आता है:

{ 
    "Geography": [ 
    ["Midwest", 234017797, 498, 8.2, 9.0, 11.3], 
    ["Northeast", 265972035, 566, 8.9, 12.1, 13.1], 
    ["South", 246235593, 524, 8.1, 8.3, 10.8], 
    ["West", 362774577, 772, 9.4,9.9, 11.7] 
    ] 
} 

यह प्रत्येक पंक्ति में अंतिम तीन संख्या है जो चार्ट श्रेणियों के लिए उपयोग किए जाने वाले प्रतिशत मान हैं। मैं डेटा में उच्च और निम्न मानों के आधार पर एक्स-अक्ष को पूर्णांक +% प्रारूप में स्वरूपित करना चाहता हूं।

धन्यवाद!

+0

क्या आप कृपया रुचि रखने वाले कोड का थोड़ा और अधिक पोस्ट कर सकते हैं? – tomtomtom

+0

@tomtomtom मैंने कोड से और विवरण जोड़ा है। मुझे एहसास है कि मैं संभवतः अधिकतम और न्यूनतम डेटा को इस पर पहुंचने के लिए उपयोग कर सकता हूं, लेकिन मैं जानना चाहता हूं कि केवल प्रतिशत चिह्न कैसे जोड़ना है। – rolfsf

+0

var formatPercent = function (d) {return d3.format ("0f") + "%"} शायद चाल चल सकता है, लेकिन मुझे यकीन नहीं है – tomtomtom

उत्तर

37

डी 3 v4 (ES6 का प्रयोग करके) के लिए अद्यतन:

// Can also be axisTop, axisRight, or axisBottom 
d3.axisLeft() 
    .tickFormat(d => d + "%") 

डी 3 v3 के लिए मूल जवाब:

d3.svg.axis() 
    .tickFormat(function(d) { return d + "%"; }); 

आप हैं:

आप अपनी खुद की प्रारूप बना सकते हैं दशमलव स्थानों से छुटकारा पाना चाहते हैं:

d3.svg.axis() 
    .tickFormat(function(d) { return parseInt(d, 10) + "%"; });