2015-12-29 3 views
1

, поэтому я пытался найти способ создания новых строк в методах оси x моего графика nvd3, но пока ничего не работает. Я упомянул эти два вопроса: Newline in labels in d3 charts и nvd3 chart axis label, но не нашел достаточного ответа, потому что они оба связаны с графами d3.js. У них обоих есть ответы, связанные с использованием tspan для создания новой строки, но, похоже, она не работает для меня независимо от того, как много я играю с ней. Это то, что у меня есть сейчас, но это, похоже, не совсем правильно ... любая помощь будет оценена!Создание новой строки в nvd3.js графах оси x

nv.addGraph(function() { 
 
var chart = nv.models.multiBarChart().stacked(false).showControls(false); 
 

 
chart.x(function (d) { return d.x; }); 
 
chart.y(function (d) { return d.y; }); 
 

 
chart.yAxis 
 
\t .axisLabel('Jobs') 
 
//Too many bars and not enough room? Try staggering labels. 
 
chart.staggerLabels(true); 
 
chart.margin().left = 70; 
 
//chart.showValues(true); 
 

 
var tech_data = technicianReport(); 
 

 
console.log(tech_data[1] + " " + tech_data[2]) 
 

 
$("#date_range").text(tech_data[1] + " - " + tech_data[2]); 
 
$("#tech_title").text("Technician-Advisor Actions"); 
 

 
d3.select('#tech_chart svg') 
 
\t .datum(tech_data[0]) 
 
\t .transition().duration(500).call(chart); 
 

 
var insertLinebreaks = function (d) { 
 
\t var el = d3.select(this).text(); 
 
\t var words = d.description.split('\n'); 
 
\t el.text(''); 
 

 
\t for (var i = 0; i < words.length; i++) { 
 
\t \t var tspan = el.append('tspan').text(words[i]); 
 
\t \t if (i > 0) 
 
\t \t \t tspan.attr('x', 0).attr('dy', '15'); 
 
\t } 
 
}; 
 

 
svg = d3.select("tech_chart svg"); 
 
svg.selectAll('g.x.axis g text').each(insertLinebreaks); 
 

 
nv.utils.windowResize(function() { chart.update() }); 
 
return chart; 
 
});

ответ

0

Используйте .wrapLabels параметр из последнего источника nvd3 (1.8.1-DEV) Параметр заворачивает длинные х меток осей. Сравните эти две картинки enter image description here enter image description here

Итак, вы придумали

chart.wrapLabels(true); 
Смежные вопросы