Javascript 来自id的D3.js csv数据,正确方式?

Javascript 来自id的D3.js csv数据,正确方式?,javascript,csv,d3.js,Javascript,Csv,D3.js,我正在尝试从id为“csvdata”的元素导入条形图中的数据,而不是以传统方式从外部.csv文件加载数据,这次只是为了测试 我制作了一个“pre”元素,上面提到过给他一个id, 更改了脚本中加载外部csv数据的部分,如下所示 d3.csv("data.csv", function(error, data)..... 进入这个 d3.csv("#csvdata", function(error, data)..... d3成功加载了d3文档,但没有以正确的方式显示数据。。。在我看来,我需要一些

我正在尝试从id为“csvdata”的元素导入条形图中的数据,而不是以传统方式从外部.csv文件加载数据,这次只是为了测试

我制作了一个“pre”元素,上面提到过给他一个id, 更改了脚本中加载外部csv数据的部分,如下所示

d3.csv("data.csv", function(error, data).....
进入这个

d3.csv("#csvdata", function(error, data).....
d3成功加载了d3文档,但没有以正确的方式显示数据。。。在我看来,我需要一些排序转换或数据解析,我不太确定,所以我需要你的帮助与此

你可以在这里看到我目前的情况:

以下是html代码:

<pre id="csvdata" style="display:none">
Year,Outcome,Income,+5%
2013,52083,85640,42153
2014,60000,90000,50000
2015,7000,100000,260000
2016,8000,110000,270000
2017,9000,120000,280000
2018,10000,130000,290000
2019,11000,140000,300000
2020,12000,150000,310000
2021,13000,160000,320000
2022,310504,552339,259034
2023,310504,552339,259034
</pre>
和css样式:

body {
  font: 10px sans-serif;
}

.axis path,
.axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.bar {
  fill: steelblue;
}

.x.axis path {
  display: none;
}

您可以自由编辑上面链接的我的JSFIDLE,欢迎您提供任何帮助或建议当您像这样使用
d3.csv
时,它会解析HTML文档--您不能提供这样的csv数据。您需要以可以直接在Javascript中解析的方式提供数据。最简单的方法是直接提供Javascript变量
d3.csv
实际上只用于加载外部csv文件,虽然您可以使用底层函数直接解析csv,但这将是一个不太简单的修改

body {
  font: 10px sans-serif;
}

.axis path,
.axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.bar {
  fill: steelblue;
}

.x.axis path {
  display: none;
}