2015-05-22 40 views
1

我試圖在一個酒窩中製作一個水平條形圖,它將(1)對降序值進行排序,(2)將刻度標記設置爲「.2f」(2位小數),因此工具提示也具有2位小數。通過addOrderRule進行排序並調整刻度

以下各種默認值遞增即使我設置.addOrderRule爲true,甚至不畫時,我指定.tickFormat

我在做什麼錯圖表的代碼?似乎很簡單,但我一直在絞盡腦汁!

<script type="text/javascript"> 

    var margin = 75, 
     width = 1000 - margin, 
     height = 500 - margin; 

    var svg = d3.select("body") 
     .append("svg") 
     .attr("width", width + margin) 
     .attr("height", height + margin); 

    d3.csv("flower-prices.csv", function (data) { 

     var myChart = new dimple.chart(svg, data); 
     myChart.setBounds(150, 30, 700, 350); 

     var x = myChart.addMeasureAxis("x", "avgprice"); 
     x.tickFormat(".2f"); 

     var y = myChart.addCategoryAxis("y", "strain"); 

     var series = myChart.addSeries(null, dimple.plot.bar); 
     series.addOrderRule("avgprice", true); 

     myChart.draw(); 

    }); 

    </script> 

回答

2

axis.tickFormat是正確的,但它需要設置爲成員屬性,而不是使用函數表示法。因此,你只需要使用:

x.tickFormat = ".2f"; 

順序規則需要被應用於軸,而不是系列(一系列順序規則影響在酒吧,在這裏是不相關的堆疊順序)。也下降/上升是基於零而不是頂部(所以可能有點反直覺)默認情況下降,我想在這裏你想要提升,所以它應該是:

y.addOrderRule("avgprice", false); 
+0

謝謝約翰!就是這樣。我認爲的第一點是「愚蠢的時刻」哈哈結果。我現在理解第二點。感謝您澄清訂購軸與措施。 – dixter20