零基础自学前端 D3.js 初体验03 柱状图+排序

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>d3</title>

</head>

<script src="https://d3js.org/d3.v4.min.js"></script>

<body>

<button type="button" name="button" onclick="mySort()">排序</button>

<button type="button" name="button" onclick="myAdd()">添加数据</button>

</body>

<script type="text/javascript">

var width = 1000,

height = 400,

dataset = [50, 90, 124, 86, 73, 64, 110, 107],

padding = {

top: 20,

right: 20,

bottom: 20,

left: 20

},

rectWidth = 30,

rectStep = 35;

var svg = d3.select("body")

.append("svg")

.attr("width", width)

.attr("height", height)

var rect = svg.selectAll("rect")

.data(dataset)

.enter()

.append("rect")

.attr("fill", "red")

.attr("x", function(d, i) {

return padding.left + i * rectStep;

})

.attr("y", function(d) {

return height - padding.bottom - d;

})

.attr("width", rectWidth)

.attr("height", function(d) {

return d;

});

var text = svg.selectAll("text")

.data(dataset)

.enter()

.append("text")

.attr("fill", "aqua")

.attr("font-size", "14px")

.attr("text-anchor", "middle")

.attr("x", function(d, i) {

return padding.left + i * rectStep;

})

.attr("y", function(d) {

return height - padding.bottom - d

})

.attr("dx", rectWidth / 2)

.attr("dy", "1em")

.text(function(d) {

return d;

});

function draw() {

var updateRect = svg.selectAll("rect")

.data(dataset);

var enterRect = updateRect.enter();

var exitRect = updateRect.exit();

var updateText = svg.selectAll("text")

.data(dataset);

var enterText = updateText.enter();

var exitText = updateText.exit();

updateRect.attr("fill", "red")

.attr("x", function(d, i) {

return padding.left + i * rectStep;

})

.attr("y", function(d) {

return height - padding.bottom - d;

})

.attr("width", rectWidth)

.attr("height", function(d) {

return d;

});

enterRect.append("rect")

.attr("fill", "red")

.attr("x", function(d, i) {

return padding.left + i * rectStep;

})

.attr("y", function(d) {

return height - padding.bottom - d;

})

.attr("width", rectWidth)

.attr("height", function(d) {

return d;

});

exitRect.remove();

updateText.attr("fill", "aqua")

.attr("font-size", "14px")

.attr("text-anchor", "middle")

.attr("x", function(d, i) {

return padding.left + i * rectStep;

})

.attr("y", function(d) {

return height - padding.bottom - d

})

.attr("dx", rectWidth / 2)

.attr("dy", "1em")

.text(function(d) {

return d;

});

enterText.append("text")

.attr("fill", "aqua")

.attr("font-size", "14px")

.attr("text-anchor", "middle")

.attr("x", function(d, i) {

return padding.left + i * rectStep;

})

.attr("y", function(d) {

return height - padding.bottom - d

})

.attr("dx", rectWidth / 2)

.attr("dy", "1em")

.text(function(d) {

return d;

});

exitRect.remove();

}

?

function mySort() {

dataset.sort(d3.ascending);

draw();

}

function myAdd() {

dataset.push(Math.floor(Math.random() * 100));

draw();

}

</script>

</html>

零基础自学前端,你要的学习资料到了-498854752

时间: 2024-10-26 16:47:40

零基础自学前端 D3.js 初体验03 柱状图+排序的相关文章

月薪12k的零基础自学前端必备手册

随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才.很多同学,包括以前做UI的.Java的.或者对于IT完全零基础的同学都想学习前端.下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了.确实,前端是一门涵盖面很广的学科.但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么对于零基础的一个学员该怎么学习前端呢? 工具篇 工欲善其事,必先利其器,所以在开始之前选择一个合适好用的编辑器是很重要的,工具不再多,在于好用

小猿圈web前端开发讲师:零基础自学html5开发方法

web前端开发目前市场使用率随着需求逐年递增.越来越多的年轻人转行进入了web前端开发领取.html5强大的功能是有目共睹的,本属自身独特的优势让这一技术越来越受欢迎,相比于原生APP,html5已经逐渐在用户体验生无限接近,再加上低廉的开发成本和强大的适配功能,早已经可以俘获开发商和开发者的芳心,本文小猿圈web前端开发讲师介绍零基础如何自学html5开发? 小猿圈web前端开发讲师:零基础自学html5开发方法: 1.拒绝插件,遇到交互效果就选择扒插件,这是一种非常不可取的方法,在这种情况之

零基础学习前端1-1配置node及npm环境变量

零基础学习前端1-1配置node及npm环境变量 ## 1-1配置node及npm环境变量 首先:下载node 可以直接去官方网站下载 1.首先从官网下载安装包 https://nodejs.org/ 我这里下载的是windows的 可以进去选择版本 下载后的安装包 2.下一步直接安装,可以选择对应的目录,建议不要选择默认的path 我这里的安装目录:E:\webyikeshuo\node 3.接下来去配置path,"我的电脑"-右键-"属性"-"高级系统

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件来达到配置shell环境的目的.也许这也是某些人诟病cmd shell功能不强的原因之一. 而目前这种状况在windows powershell中得到了改善,可以说PS中提供的自定义环境的功能

vue.js 初体验

Vue.js是什么? 一个构建数据驱动的web界面的库.他不是一个全能框架,技术上重点集中在MVVM中的ViewModel层. Vue.js特点? 轻巧.高性能.可组件化 官网地址:http://cn.vuejs.org/ Vue.js初体验 引入Vue.js独立版本, 至官网下载独立版本.根据提示,开发时选择开发版本. 直接引入Vue.js到静态页面中,从数据绑定开始编写DOM部分和js部分 <div id="app"> {{message}} </div>

python零基础自学——前篇自白

首先声明,本人就是个菜鸟,小白一个,在这里记录我自学python时的点点滴滴,用于我的经验积累以及复习.当然,若有零基础自学的人看见,交流学习经验那就最好不过了. python其实对零基础的小白来说就再适合不过了,为什么这么说,个人对编程的理解就是高.大.上.总感觉都是些BT才可以玩这个的. 我自己创业,开公司有过好的时候,但最后都倒闭了,积累如此阅历,却回首发现,自己没有一项术语自己的专业既能.所以就想学习编程.跟专业朋友交流以后,都推荐我学习python.原因有以下几点: 一:简单. 因为是

讨教大学:零基础自学编程,选JAVA,Python还是PHP?

越来越多非科班出身的人也义无反顾的投身到了IT互联网行业,加入了码农大军.但是对于非科班自学编程的朋友们来说,考虑的第一个问题一定是:我该从哪一个语言开始学起?在这里小编就为大家介绍一下零基础自学几大主流语言的优劣势. 首先从这几大语言的难度谈起,不同语言门槛和难度不同,Python<PHP<JavaScript<Java<C++.也就是说,Python是最好入门的一种语言,兼具易学性和趣味性,学几天就可以做出一些有意思的小功能出来.这也给了初学者学下去的信心和兴趣,不至于啃书几天

Knockout.js初体验

前不久在网上看到一个轻量级MVVM js类库叫Knockout.js,觉得很好奇,搜了一下Knockout.js相关资料,也初体验了一下,顿时感觉这个框架的设计很有意思.接下来就搞清楚什么是Knockout.js Knockout.js有4个重要的概念:(一定要牢记) 1.声明绑定:使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上. 2.UI界面自动刷新:当您的模型状态(model state)改变时,您的UI界面将自动更新. 3.依赖跟踪:为转变和联合数据,在你的模型数据之

零基础自学Python 3开发网络爬虫(二): 用到的数据结构简介以及爬虫Ver1.0 alpha

上一回, 我学会了 用伪代码写出爬虫的主要框架; 用Python的urllib.request库抓取指定url的页面; 用Python的urllib.parse库对普通字符串转符合url的字符串. 这一回, 开始用Python将伪代码中的所有部分实现. 由于文章的标题就是"零基础", 因此会先把用到的两种数据结构队列和集合介绍一下. 而对于"正则表达式"部分, 限于篇幅不能介绍, 但给出我比较喜欢的几个参考资料. Python的队列 在爬虫程序中, 用到了广度优先搜