条形图:在没有标题的情况下从csv设置轴域

在石头上

我有以下代码用于带有标题的csv的d​​3条形图。我删除了仅提及相关部分的代码。我正在使用d3 v5。

data.csv:

Plan, TotalTime, Time1, Time2
A, 0.07, 0.04, 0.03
B, 0.08, 0.02, 0.06

index.js

d3.csv("data.csv", d3.autoType).then(function(data) {

x.domain(data.map(function(d) { return d.Plan; }));
y.domain([0, d3.max(data, function(d) { return d.TotalTime; })]);

g.selectAll(.bar)
.data(data)
.enter().append("rect")
.attr("class", "TotalBar")
.attr("x", function (d) { return x(d.Plan) ;})
.attr("y", function (d) { return y(d.TotalTime) ;})
.attr("height", function (d) { return height - y(d.TotalTime) ;})

Similar code for Time1 and Time2 columns
});

我将有一个场景,其中不会有任何标题。第一列和第二列将分别始终是Plan和TotalTime。此外,“时间”列的数量将有所不同。在这种情况下,如何设置轴域?我有以下代码

data.csv

A, 0.08, 0.04, 0.03, 0.01
B, 0.09, 0.02, 0.06, 0.01

index.js

d3.text("data.csv").then(function(data) {
var rows = d3.csvParseRows(data, d3.autoType);
columnCount = rows[0].length;

x.domain(data.map(function(d) { return ??; }));
y.domain([0, d3.max(data, function(d) { return ??; })]);

for (var col=0; col<columnCount; ++Col) {
    g.selectAll(.bar)
    .data(data)
    .enter().append("rect")
    .attr("class", "Bar"+col)
    .attr("x", function (d) { return x(??); })
    .attr("y", function (d) { return y(??); })
    .attr("height", function (d) { return height - y(??); })
}
});
杰拉尔多·富塔多

您有两种不同的解决方案:

第一个是使用每一列的索引。就您而言,Planis0totalTimeis 1

const csv = `A,0.08,0.04,0.03,0.01
B,0.09,0.02,0.06,0.01`;

const data = d3.csvParseRows(csv);

const xDomain = data.map(function(d) {
  return d[0];
});
const yDomain = [0, d3.max(data, function(d) {
  return d[1];
})];

console.log(xDomain)
console.log(yDomain)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

另一个解决方案是使用行转换功能来更改数据,使其成为对象数组,就像您的第一个片段一样:

const csv = `A,0.08,0.04,0.03,0.01
B,0.09,0.02,0.06,0.01`;

const data = d3.csvParseRows(csv, function(d) {
  return {
    Plan: d[0],
    totalTime: d[1]
  }
});

console.log(data)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

然后,您可以使用原始代码。在row函数中,根据需要返回其他列。

最后,作为提示:摆脱该for循环。在D3代码中,避免使用循环附加元素。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中没有“填充”的情况下创建条形图?

来自分类Dev

如何设置条形图的x轴

来自分类Dev

条形图设置值的轴增量

来自分类Dev

如何设置条形图的x轴

来自分类Dev

使用Coreplot布置条形图,并使用labelFormatter在X轴上显示日期。但是条形图没有显示

来自分类Dev

条形图x轴标题不适用于许多条形图

来自分类Dev

Altair-如何在不操纵DataFrame的情况下创建分组的条形图

来自分类Dev

如何在不更改查询的情况下对条形图进行排序?

来自分类Dev

在没有Django网站框架的情况下如何设置网站域?

来自分类Dev

在R中没有列标题的情况下将数据帧写入csv文件

来自分类Dev

在R中没有列标题的情况下将数据帧写入csv文件

来自分类Dev

没有填充的堆积条形图?

来自分类Dev

设置条形图的x轴以显示月份

来自分类Dev

条形图的水平轴

来自分类Dev

在没有 the_post 的情况下获取 WordPress 标题

来自分类Dev

在没有parseJSON的情况下获取高图数据

来自分类Dev

具有多个垂直轴的Kendo条形图

来自分类Dev

Matlab-如何在不丢失行名的情况下对条形图的行进行排序?

来自分类Dev

没有设置填充颜色的chart.js条形图

来自分类Dev

如何在Python中没有标题的情况下将图例添加到CSV数据图中?

来自分类Dev

如何创建没有重叠条形图的ggplot条形图?

来自分类Dev

在没有makefile的情况下如何设置“ make”命令?

来自分类Dev

当Coreplot iOS中有多个条形图时,如何在x轴上设置刻度空间?

来自分类Dev

在没有 foreach 的情况下写入 csv 值

来自分类Dev

设置ShinobiControls条形图

来自分类Dev

在没有实际域的情况下模拟“子域”(在专用网络上)

来自分类Dev

matplotlib:共享两个条形图的x轴,每个条形图有4组

来自分类Dev

ggplot中没有字典顺序的条形图

来自分类Dev

Seaborn条形图条之间没有空格

Related 相关文章

  1. 1

    如何在R中没有“填充”的情况下创建条形图?

  2. 2

    如何设置条形图的x轴

  3. 3

    条形图设置值的轴增量

  4. 4

    如何设置条形图的x轴

  5. 5

    使用Coreplot布置条形图,并使用labelFormatter在X轴上显示日期。但是条形图没有显示

  6. 6

    条形图x轴标题不适用于许多条形图

  7. 7

    Altair-如何在不操纵DataFrame的情况下创建分组的条形图

  8. 8

    如何在不更改查询的情况下对条形图进行排序?

  9. 9

    在没有Django网站框架的情况下如何设置网站域?

  10. 10

    在R中没有列标题的情况下将数据帧写入csv文件

  11. 11

    在R中没有列标题的情况下将数据帧写入csv文件

  12. 12

    没有填充的堆积条形图?

  13. 13

    设置条形图的x轴以显示月份

  14. 14

    条形图的水平轴

  15. 15

    在没有 the_post 的情况下获取 WordPress 标题

  16. 16

    在没有parseJSON的情况下获取高图数据

  17. 17

    具有多个垂直轴的Kendo条形图

  18. 18

    Matlab-如何在不丢失行名的情况下对条形图的行进行排序?

  19. 19

    没有设置填充颜色的chart.js条形图

  20. 20

    如何在Python中没有标题的情况下将图例添加到CSV数据图中?

  21. 21

    如何创建没有重叠条形图的ggplot条形图?

  22. 22

    在没有makefile的情况下如何设置“ make”命令?

  23. 23

    当Coreplot iOS中有多个条形图时,如何在x轴上设置刻度空间?

  24. 24

    在没有 foreach 的情况下写入 csv 值

  25. 25

    设置ShinobiControls条形图

  26. 26

    在没有实际域的情况下模拟“子域”(在专用网络上)

  27. 27

    matplotlib:共享两个条形图的x轴,每个条形图有4组

  28. 28

    ggplot中没有字典顺序的条形图

  29. 29

    Seaborn条形图条之间没有空格

热门标签

归档