d3 雷达图——radialLine 创建路径但没有坐标

i_deologic

这可能是一个非常具体的问题:

我的问题是在 d3.js 中我需要创建一个径向图表。我创建了轴和标签。现在我想绘制radialLine。它在我的 HTML 文档中创建路径对象,但没有任何坐标。

我认为这与向radialLine提供半径/数据的方式有关,但无法弄清楚要更改什么......希望有人看到我的错误。

我还创建了一个 JSfiddle:完整的 JSfiddle

//Data:
var notebookData = [{
  model: "Levecchio 620RE",
  data: [579, 8, 2.4, 256, 13.3]
}];

var categories = [
  "Price",
  "RAM",
  "CPU",
  "Storage",
  "Display"
];

var priceScale = d3.scaleLinear().domain([2500,300]).range([0,100]);
var ramScale = d3.scaleLinear().domain([0,32]).range([0,100]);
var cpuScale = d3.scaleLinear().domain([1.0,3.2]).range([0,100]);
var storageScale = d3.scaleLinear().domain([64,2048]).range([0,100]);
var displaySizeScale = d3.scaleLinear().domain([10.0,20.0]).range([0,100]);

function selectScale(category_name) {
    switch(category_name) {
        case "Price":
            return priceScale;
        case "RAM":
            return ramScale;
        case "CPU":
            return cpuScale;
        case "Storage":
            return storageScale;
        case "Display":
            return displaySizeScale;
    }
}

var scaledData = notebookData.map(function (el) {
    return el.data.map(function (el2, i) {                //el = 1 notebook
        return selectScale(categories[i])(el2);
    });
});
     
//My RadialLine
    
    //generatorfunction
    var radarLine = d3.radialLine()
      .radius(function(d) { return scaledData(d.value); })
      .angle(function(d,i) {	return i*angleSlice; })
      .curve(d3.curveLinearClosed)
      ;


    //Create the wrapper 
    var radarWrapper = g.selectAll(".radarWrapper")
      .data(notebookData)
      .enter().append("g")
      .attr("class", "radarWrapper")
      ;

    //Create pathlines
    radarWrapper.append("path")
      .attr("class", "radarStroke")
      .attr("d", function(d,i) { return radarLine(d); })
      .style("stroke-width", cfg.strokeWidth + "px")
      .style("stroke", function(d,i) { return cfg.color(i); })
      .style("fill", "none")
      ;
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

塞巴斯蒂安·克里西亚克

我对您的小提琴进行了一些编辑以使其正常工作:

https://jsfiddle.net/2qgygksL/75/

基本上我所做的:

修复配色方案

var colors = d3.scale.category10();

代替

var colors = d3.scale.ordinal(d3.schemeCategory10);

添加数据到路径

radarWrapper.append("path")
          .data(scaledData)

将半径更改为

  .radius(function(d, i) {
        return d;
  })

因为你使用了类似 return scaledData(d.value); 的东西。您的 scaledData 是一个数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用React创建d3力布局图

来自分类Dev

使用D3为气泡图创建图例

来自分类Dev

使用D3创建多层饼图

来自分类Dev

d3强制有向图删除文本光标

来自分类Dev

d3强制有向图不选择文本

来自分类Dev

d3力有向图,未绘制链接

来自分类Dev

动态过滤D3有向图的节点

来自分类Dev

D3带有React Hook的面积图

来自分类Dev

D3强制有向图ajax更新

来自分类Dev

更新带有标签的饼图(d3)

来自分类Dev

有没有办法在d3中向饼图添加突出显示?

来自分类Dev

d3树状图,有没有办法使单个节点脱颖而出?

来自分类Dev

D3 力有向图:为什么没有出现标志?

来自分类Dev

如何在SVG中为D3画笔创建路径

来自分类Dev

Excel-如何创建堆叠的雷达图?

来自分类Dev

D3:如何创建具有两个圆弧的循环流/ Sankey图

来自分类Dev

d3 +创建具有不同格式的饼图

来自分类Dev

D3.js 雷达图工具提示

来自分类Dev

带有水平行点的 D3 点图,如美联储的预测图,HOWTO

来自分类Dev

如何从 D3 中的现有面积图制作堆积面积图

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

d3从JSON路径创建svg

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

多级D3饼图/甜甜圈图不显示,没有错误消息

来自分类Dev

D3地图-上下文菜单-无法更新路径属性

来自分类Dev

如何使用Rails数据库中的数据创建d3图

来自分类Dev

D3如何为力导向图创建星形布局?

来自分类Dev

使用对象创建D3条形图

来自分类Dev

D3如何为力导向图创建星形布局?