0
我的D3.js圖表出現問題。所以我試圖從我的項目中的本地文件解析JSON數據,並用它創建一個D3圖表。我的本地文件的URL具有正確的JSON數組。但是,由於某種原因,我的圖表沒有顯示。我正在把我的圖表從這一張上刪除:https://codepen.io/mrev/pen/waKvbwD3.JS圖表未顯示
在此先感謝!
的Javascript:
function createSeries() {
var margin = { top: 5, right: 5, bottom: 30, left: 40 },
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
// scale to ordinal because x axis is not numerical
var x = d3.scale.ordinal().rangeRoundBands([0, width], .1);
//scale to numerical value by height
var y = d3.scale.linear().range([height, 0]);
var chart = d3.select("#chart")
.append("svg") //append svg element inside #chart
.attr("width", width + (2 * margin.left) + margin.right) //set width
.attr("height", height + margin.top + margin.bottom); //set height
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom"); //orient bottom because x-axis will appear below the bars
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
d3.json("../Rma/GetNmcPareto", function (error, data) {
alert(error);
x.domain(data.map(function (d) { return d.Wuc }));
y.domain([0, d3.max(data, function (d) { return d.Hours})]);
var bar = chart.selectAll("g")
.data(data)
.enter()
.append("g")
.attr("transform", function (d, i) {
return "translate(" + x(d.Wuc) + ", 0)";
});
bar.append("rect")
.attr("y", function (d) {
return y(d.Hours);
})
.attr("x", function (d, i) {
return x.rangeBand() + (margin.left/2);
})
.attr("height", function (d) {
return height - y(d.Hours);
})
.attr("width", x.rangeBand()); //set width base on range on ordinal data
bar.append("text")
.attr("x", x.rangeBand() + margin.left)
.attr("y", function (d) { return y(d.Hours) - 10; })
.attr("dy", ".75em")
.text(function (d) { return d.Hours; });
chart.append("g")
.attr("class", "x axis")
.attr("transform", "translate(" + margin.left + "," + height + ")")
.call(xAxis);
chart.append("g")
.attr("class", "y axis")
.attr("transform", "translate(" + margin.left + ",0)")
.call(yAxis)
.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 6)
.attr("dy", ".71em")
.style("text-anchor", "end")
.text("Hours");
});
function type(d) {
d.Wuc = +d.Wuc; // coerce to number
return d;
}
};
HTML:
@{
ViewBag.Title = "Nmc Pareto";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Nmc Pareto</h2>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-area-chart fa-fw"></i>NMC Pareto
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<div id="divtitle" class="text-center"></div>
<table>
<tbody>
<tr>
<td id="pnlFilters">
<div class="collapse width">
<form id="fmSearch" role="form" data-toggle="validator">
<div>
<div>
</div>
</div>
</form>
</div>
</td>
<td id="btnOpenFilters">
<a href="#" data-toggle="collapse" data-target="#pnlFilters>div">
<div>
<span class="filterArrowTop glyphicon glyphicon-chevron-right"></span>
<span class="sidePanelText openFiltersText">Filters</span>
<span class="filterArrowBottom glyphicon glyphicon-chevron-right"></span>
</div>
</a>
</td>
<td style="width: 100%;" rowspan="2">
<svg id="chart">
</svg>
</td>
</tr>
</tbody>
</table>
</div>
<!-- /.panel-body -->
</div>
</div>
</div>
@section styles {
<link rel="stylesheet" type="text/css" href="~/Content/themes/base/jquery.ui.all.css" />
<link rel="stylesheet" type="text/css" href="~/Content/Views/Rma/NmcPareto.css" />
}
@section scripts{
<script type="text/javascript" src="~/Scripts/Views/Rma/NmcPareto.js"></script>
<script type="text/javascript" src="~/Scripts/d3.min.js"></script>
}
JSON數據:
{
"data": [
{
"Wuc": "23A",
"Nomenclature": "Engine, Basic (F117-PW)",
"Hours": 155899.90
},
{
"Wuc": "23V",
"Nomenclature": "Fan Thrust Reverser",
"Hours": 56576
}
]
}
你有ID爲 「表」,然後要附加其他SVG到一個SVG。那是對的嗎?也許只是從一個ID「圖表」的div開始。你也有任何數據嗎? –
是的,這是JSON數據:{「data」:[{「Wuc」:「23A」,「Nomenclature」:「Engine,Basic(F117-PW)」,「Hours」:155899.90},{「Wuc」 :「23V」,「Nomenclature」:「Fan Thrust Reverser」,「Hours」:56576}]} – siowleo
JSON需要在這樣的數組中,[{「data」:[{「Wuc」:「23A」 ,「命名法」:「發動機,基本(F117-PW)」,「小時」:155899.90},{「Wuc」:「23V」,「命名法」:「F an Thrust Reverser」,「Hours」:56576} ]}],或者更簡單地如此,[{「Wuc」:「23A」,「命名法」:「引擎,基本(F117-PW)」,「小時」:155899.90},{「Wuc」:「23V」 ,「Nomenclature」:「F an Thrust Reverser」,「Hours」:56576}] –