D3.js为带内环的圆环图添加一个图例
D3.js Giving a legend to a donut chart with inner rings
我正在尝试将一个标记正确的图例添加到带有多个环的圆环图中。我在这里有关于plunker的更新代码:甜甜圈图
这是我用来添加图例的代码:
var legend = chart1.selectAll(".legend")
.data(color.domain().slice())//.reverse())
.enter().append("g")
.attr("class","legend")
.attr("transform", function(d, i) { return "translate(0," + i * 20 + ")"; });
legend.append("rect")
.attr("x", 190)
.attr("y", -(margin.top) * 7 - 8)
.attr("width", 18)
.attr("height", 18)
.style("fill", color);
legend.append("text")
.attr("x", margin.right * 7)
.attr("y", -(margin.top) * 7)
.attr("dy", ".35em")
.text(function(d,i) { return d; });
正如你在图表上注意到的那样,图例的编号从0到5,但我希望图例根据用于绘制图表的类进行标记,例如A类、B类。。
请协助
在d3
中,函数的第二个参数是元素的索引。因此,您可以使用此索引直接从数据数组中获取任何属性。
例如。
数据[0]->{"Class":"Class A","Actual_Class":"495","Predicted_Class":"495","Accuracy":"100"}
所以试试这个代码。
legend.append("text")
.attr("x", margin.right * 7)
.attr("y", -(margin.top) * 7)
.attr("dy", ".35em")
.text(function(d,i) {
return data[i].Class;
});
相关文章:
- 我可以在json对象中添加一个函数吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 单击更改图标并通过javascript添加一个css类
- fluxxor向一个flux实例添加一组以上的操作
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将添加一个相同类型的事件附加或覆盖以前添加的具有相同名称的事件
- angularjs移除焦点上的活动类并添加到下一个项目
- 使用jquery contains获取一个元素并添加类
- 有没有添加一个ng点击到md背景
- 如何为下拉列表的每个选项添加一个属性
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- 单击删除其中一个添加的行
- 几个jQuery日期选择器小部件,只向其中一个添加类
- 我想创建一个添加新表单的按钮
- Babel v6:我如何/可以编写一个添加新语法(即新运算符)的插件
- GWT SimplePager -为每个下一个和上一个添加历史记录
- 自动提交表单上的最大长度,-为现有的一个添加java脚本代码
- 如何在jquery中移除一个添加了类的类
- 动态更改URL,而不需要将前一个添加到历史堆栈