按 addOrderRule 排序并调整刻度
Sorting by addOrderRule and adjusting ticks
我正在尝试在酒窝中制作一个水平条形图,它将 (1) 对降序值进行排序,并且 (2) 将刻度线设置为“.2f”(2 位小数),因此工具提示也有 2 位小数。
即使在我将 .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>
axis.tickFormat 是正确的,但需要将其设置为成员 属性,而不是使用函数符号。因此你只需要使用:
x.tickFormat = ".2f";
顺序规则需要应用于轴而不是系列(系列顺序规则影响条形图中的堆叠顺序,这与此处无关)。另外 descending/ascending 基于零而不是顶部,所以(可能有点违反直觉)默认值是降序的,我猜这里你想要升序,所以它应该是:
y.addOrderRule("avgprice", false);
我正在尝试在酒窝中制作一个水平条形图,它将 (1) 对降序值进行排序,并且 (2) 将刻度线设置为“.2f”(2 位小数),因此工具提示也有 2 位小数。
即使在我将 .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>
axis.tickFormat 是正确的,但需要将其设置为成员 属性,而不是使用函数符号。因此你只需要使用:
x.tickFormat = ".2f";
顺序规则需要应用于轴而不是系列(系列顺序规则影响条形图中的堆叠顺序,这与此处无关)。另外 descending/ascending 基于零而不是顶部,所以(可能有点违反直觉)默认值是降序的,我猜这里你想要升序,所以它应该是:
y.addOrderRule("avgprice", false);