gpt4 book ai didi

javascript - 使用数字数组和 json 元素数组时,D3 条形图看起来不同

转载 作者:行者123 更新时间:2023-12-03 07:32:32 25 4
gpt4 key购买 nike

我希望这两个 D3 图都从底部开始。但是,由于某种原因,第二个是从顶部开始显示的

Graph1 - 仅显示 JS 代码

var datos = [1, 2, 3, 5, 8, 11, 13, 21, 34, 55, 89, 144];

function graficar() {
d3.select('.miGrafica')
.selectAll('div')
.data(datos)
.enter().append('div')
.attr('class', 'barra')
.style("height", function(d) {
return d + "px";
})
.text(function(d) {
return d.nombre;
})
}

Graph looking ok

Graph2 - 仅显示 JS 代码

var datos = [{id:1,nombre:"Fregona",cantidad:45},{id:2,nombre:"Escoba",cantidad:26}];


function graficar() {
d3.select(".miGrafica")
.selectAll("div")
.data(datos)
.enter().append("div")
.attr("id",function(d) {
return d.id;
})
.attr('class', 'barra')
.style("height", function(d) {
return d.cantidad + "px";
})
.text(function(d) {
return d.nombre;
});
}

Graph starting from the top

两种情况下的 HTML 是相同的

<html>

<head>
<meta charset="utf-8" />
<title>Dibujando con datos</title>
<link rel="stylesheet" href="style.css"/>
<script data-require="d3@3.5.3" data-semver="3.5.3" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.js"></script>
<script src="script.js"></script>
</head>

<body onload="graficar()">
<div class="miGrafica"></div>
</body>

</html>

和CSS

.barra {
display: inline-block;
width: 25px;
height: 100px;
margin-right: 2px;
background-color: green;
}

我做错了什么?我是 D3 的新手。

提前致谢!

最佳答案

两个示例之间只有一个区别 - 栏中的文本。因此,您需要添加用于文本对齐的 css 规则或删除栏中的 text:

没有文字的栏:https://plnkr.co/edit/1DG3yCfCNdLAiNp0u6fK

带有文本和CSS规则的栏vertical-align:bottom; https://plnkr.co/edit/TWksL0fVUAubdHaYsvty

关于javascript - 使用数字数组和 json 元素数组时,D3 条形图看起来不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com