【D3使用教程】(4) 添加数轴

D3入门教程——坐标轴 文章目录一、坐标轴二、使用坐标轴1.定义坐标轴2.添加坐标轴3.设定坐标轴的样式和位置4.完整代码 一、坐标轴 坐标轴在可视化图形中是很重要的一部分,很多图表的展示都需要使用坐标轴,例如:柱形图、折线图。 D3中的坐标轴: SVG 画布的预定义元素里,有六种基本图形: 矩形 圆形 椭圆 线段 折线 多边形 还有一种比较特殊的存在,也是最强的元素: 路径 所以说,在D3种是没有现成的坐标轴... 阅读详情

在这里插入图片描述

(1)设置数轴

D3的数轴实际商是由程序员自己来定义参数的函数。调用数轴函数,会生成数轴相关的可见元素,包括轴线、标签和刻度 。

使用d3.svg.axis()能创建通用的数轴函数:
var xAxis = d3.svg.axis();

但是你要注意,在使用之前你要告诉这个函数,是基于什么比例尺工作的。例如序数比例尺。

同时,你可以设置标签相对数轴显示的位置,默认出现在轴线的下方。通常而言,水平数轴的位置,可放置在顶部或底部,垂直数轴则要么放在左或者右。

var Axis = d3.svg.axis()
                 .scale(xScale)
                 .orient("bottom");

最后你想要把实际生成的数轴,将其线条和标签插入到SVG中,必须调用xAxis函数。
svg.append("g").call(xAxis);
//在svg标签内,g元素就是一个分组元素。分组元素是不可见的,跟line,rect和circle不一样,但它有两大用途:一是用来包含其他元素;二是对整个分组应用变换,从而影响到该组中所有元素。
//call()在D3中会取得传递过来的元素,然后再把它交给其他函数。对这个例子而言,传递过来的元素就hi新的分组元素g。而call()接着把g交给了xAxis函数,即在g元素内生成数轴。

(2)修整数轴

上面的情况,我们还无法给新创建的g元素赋予样式。
那该怎么做呢?通常情况下,我们可以给g元素指定一个axis类。

svg.append("g")
     .attr("class","axis")
     .call(xAxis);
然后写下样式:
.axis path,
.axis line {
      fill: none;
      stroke:black;
      shape-rendering:crispEdges;
}
.axis text {
     font-size:11px;
}

于是,就这样我们把所有的数轴元素都放在一个g分组中,能够使用CSS选择符.axis 为其中的任何元素应用样式。
从上面的样式可见,数轴本身是由path,line,和text元素组成的。
但是,要注意的是,在给SVG元素应用样式时,要确保应用的属性名是SVG的,而不是CSS的。(SVG属性名参考:https://developer.mozilla.org/en-US/docs/SVG/Attribute)

这里写图片描述

但是,我们看到这个数轴是在上方。按常理,不是都应该在下面的吗?
此时,我们可以通过SVG变换:

svg.append("g")
     .attr("class","axis")
     .attr("transform","translate(0,"+(h-padding)+")")
     .call(xAxis);
    
//translate(x,y)这是一个平移变换,上述代码中只是平移了y轴,x轴不变。(h-padding)是把分组的顶边y坐标设置为h,即整个SVG元素的高度,然后再减去我们前面定义的边距值(padding).

这里写图片描述
这里写图片描述
我们看到,g元素被加上了一个transform属性。

另外,如果你觉得数轴上的刻度线有些多的话,你还能设置设置刻度线的数量:
在定义数轴时,使用ticks(num)函数,设置数量值。如图:

这里写图片描述
##(3)垂直数轴
相比水平数轴xAxis,我们可以通过修改其代码,相对于yScale比例尺而定义一个y轴。

let yAxis = d3.svg.axis()
	   	.scale(yScale)
	   	 .orient("left")
	   	 .ticks(5);
svg.append("g").attr("class","axis").attr("transform","translate("+padding+",0)").call(yAxis);

这里写图片描述
##(4)优化
为了证明新坐标轴是可动态伸缩的,我们把静态的数据集改成随机生成的:

let dataset = [];
let numDataPoints = 50;
let xRange = Math.random() * 1000;
let yRange = Math.random() * 1000;
for(let i = 0;i<numDataPoints;i++) {
    let newNumber1 = Math.floor(Math.random()* xRange);
    let newNumber2 = Math.floor(Math.random()* yRange);
    dataset.push([newNumber1,newNumber2]);//初始化随机数据集
}

现在我们在来刷新下页面,你会发现每次刷新,都会生成不同的数据集。但是,你也看到数轴会随着输入值域的变化而相应地缩放,刻度和标签也会相应地变化。

另外,我们也可以会刻度上的标签定义样式。利用tickFormat()能为数值应用不同的格式,例如数值保留小数后三位,或显示为百分比等等。如,数值为0.23返回的是23%

但是,使用tickFormat()之前,首先要定义一个新的数值格式函数。通过这个函数可以告诉D3把数值当成百分比,同时保留一位小数等等。

let formatAsPercentage = d3.format(".1%");
xAxis.tickFormat(formatAsPercentage);

##(5)附完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div.bar {
            display: inline-block;
            width: 20px;
            height: 75px;
            margin-right: 2px;
            background-color: teal;

        }
        .axis path,
		.axis line {
		      fill: none;
		      stroke:black;
		      shape-rendering:crispEdges;
		}
		.axis text {
		     font-size:11px;
		}
    </style>
</head>
<body>

    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
    <script src="https://d3js.org/d3.v3.js"></script>
    <script>
        //D3.js code
       let w = 600;
       let h = 200;
       let padding = 30;
       let svg = d3.select("body").append("svg").attr("width",w).attr("height",h);//把append()返回的新元素保存在了变量svg中

         
        // let dataset = [
        //     [5,20],[480,90],[250,50],[100,33],[330,95],[410,12],[475,44],[25,67],[85,21],[220,88]
        //     ];
       let dataset = [];
       let numDataPoints = 50;
       let xRange = Math.random() * 1000;
       let yRange = Math.random() * 1000;
       for(let i = 0;i<numDataPoints;i++) {
       		let newNumber1 = Math.floor(Math.random()* xRange);
       		let newNumber2 = Math.floor(Math.random()* yRange);
       		dataset.push([newNumber1,newNumber2]);//初始化随机数据集
       }
       let xScale = d3.scale.linear()
                            .domain([0,d3.max(dataset,function(d){return d[0];})])
                            .range([padding,w-padding*2])
                            .nice();//nice()告诉比例尺取得为range()设置的任何值域,把两端的值扩展到最接近的整数。如[0.2000011166,0.99999943]优化为[0.2,1]
        let yScale = d3.scale.linear()
                             .domain([0,d3.max(dataset,function(d){return d[1];})])
                             .range([h-padding,padding])
                             .nice();
        let rScale = d3.scale.linear()
                             .domain([0,d3.max(dataset,function(d){return d[1];})])
                             .range([2,5])
                             .nice();          
        // 数轴
	   let xAxis = d3.svg.axis()
	   					 .scale(xScale)
	   					 .orient("bottom")
	   					 .ticks(5); 
	   let yAxis = d3.svg.axis()
	   					 .scale(yScale)
	   					 .orient("left")
	   					 .ticks(5);  					   
        svg.selectAll("circle")
           .data(dataset)
           .enter()
           .append("circle")
           .attr("cx",function(d,i){
                return xScale(d[0]); //返回缩放后的值
           })
           .attr("cy",function(d){
               return yScale(d[1]);
           })
           .attr("r",function(d){
               return rScale(d[1]);
           });
           //添加标签     
            // svg.selectAll("text")
            // .data(dataset)
            // .enter()
            // .append('text')
            // .text(function(d){
            //     return d[0]+ "," + d[1];//设置标签内容
            // })
            // .attr({
            //     fill : "black",
            //     x : function(d) {return xScale(d[0])+10;},//将标签与散点位置一一对应
            //     y : function(d) {return yScale(d[1]);}
            // })
            // .style("font-size", "11px");
       //添加数轴
	    svg.append("g")
	       .attr("class","axis")
	       .attr("transform","translate(0,"+(h-padding)+")")
	   	   .call(xAxis);
	   	svg.append("g")
	       .attr("class","axis")
	   	   .attr("transform","translate("+padding+",0)")
	   	   .call(yAxis);



    </script>
</body>
Manim 创建数轴 在 Manim 中创建数轴主要依赖NumberLine类,其参数和功能设计非常灵活,能够满足多种数学动画需求。 阅读详情

相关推荐

d3.js读书笔记-2

比例尺

高悦的专栏 8927

[D3.js] SVG-Axes(坐标轴)

D3的轴组件是为D3的quantitative, time 和 ordinal 标度所设计的。   # d3.svg.axis()   新建一个默认的坐标轴。   # aixs(selection)   轴线适用于selection 或 transition。选择器必须包含一个 svg 或者 g 元素。 例如:     d3.sel

csdn_huangyumin的博客 937

ArcGISPro小白必看:5分钟搞定3D地形图制作(附免费数据源)

本文为ArcGISPro初学者提供5步制作专业3D地形图的完整指南,涵盖免费数据获取、项目初始化、数据预处理、3D场景构建和成果输出等关键步骤。特别推荐使用NASA的SRTM高程数据和吉林一号卫星影像,帮助用户快速掌握3D地形图制作技巧,适用于教学演示和科研分析。

weixin_28314575的博客 238

d3js绘制y坐标轴_d3.js ---画坐标轴

画坐标轴//使用d3的svg的axis()方法生成坐标轴var x_axis = d3.svg.axis().scale(scale_x),y_axis = d3.svg.axis().scale(scale_y)g.append("g").call(x_axis)页面效果如下:这个时候x轴在页面的上方,不在我们想要的位置,可以通过设置transform属性将坐标轴移到自己想要的位置画y轴g.ap...

weixin_34490905的博客 1276

别再手动算重量了!用C++给UG/NX写个自动计算零件质量与质心的插件(附完整源码)

本文详细介绍了如何使用C++为UG/NX开发智能质量分析插件,实现零件质量与质心的自动计算。通过结合NXOpen和UF_MODL API,设计高效的数据结构和批量处理机制,大幅提升机械设计效率。文章包含完整源码和实用技巧,帮助工程师告别手动计算,适用于复杂装配体的自动化工程计算。

weixin_30247307的博客 130

基于溶解气体分析(DGA)的变压器DGA数据故障诊断含代码含数据

在拥有可靠的DGA数据的前提下,结合机器学习分类算法,可以实现变压器的故障诊断。在此数据集的基础上,用随机森林跑出的结果如图。

Jason_Orton的博客 2695

d3js绘制y坐标轴_D3js V4版本 画柱状图

仅供学习之用,效果图如下:image.png代码如下:Document#container{width: 800px;height: 500px;background: #333;margin: 0 auto;}svg{background: #fff;margin: 50px 100px;}.axis path,.axis line {fill: none;stroke: black;shape...

weixin_32301287的博客 261

大模型推理常见采样策略:Top-k, Top-p, Temperature, Beam Search

大模型推理采样策略,举例通俗易懂汇总介绍

qq_43243579的博客 2万+

D3.js坐标轴的绘制方法、添加坐标轴的刻度和各比例尺的坐标轴(V3版本)

D3.js坐标轴的绘制方法、添加坐标轴的刻度和各比例尺的坐标轴(V3版本) 坐标轴(Axis) 坐标轴(Axis)在很多图表中都可见到,例如柱形图、折线图、散点图等。坐标轴由一组线段和文字组成,坐标轴上的点由一个坐标值确定。但是,如果使用SVG的直线和文字一笔一画的绘制坐标轴,工作量将会极其的大。D3提供了坐标轴的制作方法,需要之前所给大家讲的比例尺一起使用。开发者仅仅需要几行代码,就能够生成各式各样的坐标轴。 与坐标轴相关的方法有: d3.svg.axis() : 创建一个默认...

cxu123321的博客 6520

开源WorkBuddy实战课:从零搭建AI Agent办公自动化工作台

AI Agent作为大语言模型之上的智能体,正在重塑办公效率。它通过工具调用、任务规划与长期记忆,将被动问答升级为主动执行。WorkBuddy作为图形化智能体工作台,降低了搭建门槛,让非技术人员也可配置自动化流程。本文开源整套实战资料,涵盖JDK环境配置、模型接入、日报邮件处理、表格清洗、批量文档生成等场景,并讲解自定义指令、Skills扩展与MCP协议。从基础概念到工程实践,帮助读者快速上手,构建属于自己的办公自动化助手。

weixin_29083475的博客 223

TPAMI 2024 | 基于外观的深度学习凝视估计:综述与基准测试

人类目光提供了关于人类焦点和意图的有价值信息,使其成为研究的关键领域。最近,深度学习彻底改变了基于外观的眼神估计。然而,由于眼神估计研究的独特特征,如2D眼神位置和3D眼神向量之间的不公平比较以及不同的预处理和后处理方法,缺乏开发基于深度学习的眼神估计算法的明确指导方针。在本文中,我们系统回顾了使用深度学习的眼神估计方法。首先,我们沿着典型的眼神估计流程调查现有的算法:深度特征提取、深度学习模型设计、个人校准和平台。

小白学视觉 341

D3 数轴

在 SVG 画布的预定义元素里,有七种基本图形:矩形,圆形,椭圆,线段,折线,多边形,路径. SVG还有g标签,意思是分组,group,可以将其他的容器进行组合. 调用数轴函数并不会返回值,而是会生成数轴相关的可见元素,包括轴线、标签和刻度。 var xAxis = d3.svg.axis(); xAxis.scale(xScale); // 传入比例尺 xAxis.orient("bo...

Claroja 939

PDBfixer: PDB修补蛋白残基

PDBFixer是一款专门用于修复蛋白质数据库(PDB)文件常见问题的工具。它能自动处理X射线晶体学结构中常见的缺陷,包括缺失氢原子、不完整侧链、非标准残基等问题。该工具提供三种使用方式:图形界面、命令行和Python API,支持添加缺失原子(全部/重原子/氢原子)、替换非标准残基、补全缺失残基等功能。特别适用于分子动力学模拟前的预处理,可自动添加水盒子并调整离子浓度。用户可通过简单命令或自定义脚本实现复杂修复流程,内置非标准残基替换表确保结构标准化。

Protein Designer的博客 933

d3数轴

设定数轴 与比例尺相似,D3的数轴实际上也是由你来定义参数的函数。但与比例尺不同的是,调用数轴函数并不会返回值,而是会生成数轴相关的可见元素,包括轴线、标签和刻度。 使用d3.svg.axis()可以创建通用的数轴函数: var xAxis = d3.svg.axis(); 要使用数轴,最起码要告诉它基于什么比例尺工作。在此,我们把绘制散点图时定义的xScale传给它:  xAxis

csdn_huangyumin的博客 766

Python 领域 vllm 知识蒸馏的实践经验

知识蒸馏(Knowledge Distillation)是一种将大型、复杂模型(教师模型)的知识转移到小型、高效模型(学生模型)的技术。在大型语言模型(LLM)时代,这项技术变得尤为重要,因为它可以在保持模型性能的同时显著降低计算资源需求。本文专注于在Python生态中使用vLLM(Very Large Language Model)框架实现知识蒸馏的实践经验。vLLM是一个专为大型语言模型设计的高效推理和服务框架,它通过创新的注意力机制和内存管理技术,显著提高了LLM的推理速度。

AI Python 编程之道的博客 776

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

画数轴的步骤_初中数学——数轴定义、意义及应用

数学是研究数和形的学科。表面看来,数和形好似两码事,其实,在数学里数和形是密切联系的。我们常常用代数的方法来处理几何图形问题,反过来,也借助于几何图形来理解代数概念,寻找解题思路。这种数与形之间的相互应用,是一种重要的数学思想。运用数形结合思想的关键是建立数与形之间的联系,那么,如何建立数与形之间的联系呢?现在有了一个很好的工具——数轴。那么,什么叫做数轴?怎样画一条正确的数轴?如何用数...

weixin_39687667的博客 7538

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

d3.js学习笔记(三)------散点图(添加了数轴)

添加了数轴的散点图 要点: 1、定义数轴时是用 d3.axisBottom()、 d3.axisLeft() 2、数轴是要基于比例尺工作,所以必须调用 .scale(比例尺) 3、ticks() 是用来定义刻度线的数量,但只是粗略设置刻度线的数量,d3 会更精确的确定具体采用几根刻度线 4、svg.append(“g”) g是分组元素:1)为组织其他元素;2)对整个分组应用变换,从而影响该组中所有元素 5、添加数轴,必须调用定义的数轴函数 具体代码如下: <!DOCTYPE html> <

MARTIAN的博客 595

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

画数轴的步骤_(七年级第3讲)数轴——给数字安个"家"

已更新:(七年级第1讲)正数和负数—向左走,向右走(七年级第2讲)有理数——是“有道理”的数吗?鱼游弋在水,鸟飞翔在天空,我们不妨也给数字"安个家"——数轴(number axis)一、什么是数轴?为了更直观的表示数,也为了更方便的研究数,我们引入了数轴,数轴的样子:定义:数轴是规定了原点、正方向和单位长度的直线几点注意:①数轴是一条直线②三要素:原点、正方向、单位长度,缺一不可③原点可...

weixin_30954879的博客 7093

如何一步步用D3画多曲线

Bar Chart: http://bl.ocks.org/mbostock/3885304 这是一个画柱状图的基本形式。 Axis是数轴; tickets是数轴上的标尺,tickets第二个参数% 可以使[0, 1]的数以百分比显示; rangeRoundBands 在[0, width] 上按区间划分,正好适合柱状图,rangePoints 在[0, width] 上按点位划分; t

Do you believe something? 3824

D3学习笔记(7—8.3)

《数据可视化实战》读书笔记 第7章 比例尺 1、比例尺的输入值域(input domain):可能的输入值的范围。 比例尺的输出范围(output range):输出值可能的范围。 2、D3的比例尺函数生成器,通过d3.scale访问。 要生成一个比例尺,在d3.scale后面加上要创建的比例尺类型即可。 输入值域:domain()方法,将值域以数组形式传给它。 输出范围:range()方法。 var scale = d3.scale.linear();//变量scale用来保存函数 scale.domai

qq_46167487的博客 336

D3基础--数轴

转载请注明出处! 概述: 与比例尺类似,D3的数轴实际上也使用来定义参数的函数。但与比例尺不同的是,调用数轴函数并不会返回值,而是会生成数轴相关的可见元素。包括:轴线,标签和刻度。 但是要注意数轴函数只适应于SVG图形,因为他们生成的都是SVG元素,同样,数轴是设计与定量比例尺(与序数比例尺相对)配合使用的。 定义和创建X轴: 1 //定义x轴 2 3 v...

weixin_30305735的博客 238

《D3--数据可视化实战》读书总结

d3理解 标签(空格分隔): 未分类 1.绑定数据 [x] 定义:通过循环的方式将数据绑定在dom元素上,每个数据对应一个元素,所以这个数据的值就能来设定dom元素的width,height,x,y坐标等,这就表现了数据驱动的思想,同时也是d3的精华所在。 [x] 我们绑定的数据通过匿名函数function(d,i)来调用,数据的值就能设置dom元素的属性。 所有的标签都可以进...

跟自己比,不要跟别人比 1606

画数轴的步骤_【周二】初中数学数轴练习题答案及解析

1.2.2数轴1、定义(课本P8)在数学中,可以用一条直线上的点表示数,这条直线叫做数轴,它满足以下要求:(1)在直线上任取一个点表示数0,这个点叫做原点;(2)通常规定直线上从原点向右(或上)为正方向,从原点向左(或下)为负方向;(3)选取适当的长度为单位长度,直线上从原点向右,每隔一个单位长度取一个点,依次表示1,2,3,…;从原点向左,用类似方法依次表示-1,-2,-3,…(图1....

weixin_39606003的博客 2320

画数轴的步骤_初中基础:有理数与数轴的数形结合

要点归纳典例讲解一、正、负数的识别及应用例1 下列各数中,哪些是正数?哪些是负数? +0.007,-200,,-,0.666…,-9,20.5,0,- 【思路点拨】由正、负数的定义进行判断.解:整数:+0.007,,0.666…,20.5;负数:-200,-,-9,-.【方法规律】正数前面可以加“+”号,也可以不加“+”号;负数前面的“-”号不可以省略.判断一个数是不是负数,要看它是不是在正数的前...

weixin_28756833的博客 2119

(笔记)数据可视化实战:使用D3设计交互式图表

一、准备 章节文件:http://t.cn/zTI9BXG 整个D3项目:github D3官方网站:d3.js.org 中文API:introduce mbostock:bl.ocks.org/mbostock blog.visual.ly/creating-animations-and-transitions-with-d3-js/ D3底层思想;血统的来源:http://vis...

ysugarr 2852

画数轴的步骤_笔记整理四:2.1 有理数 2.2 数轴

2.1 有理数一、具有相反意义的量规定:正→正数表示另一量:负→负数表示注意:1、量;2、相反意义二、有理数分类2.2 数轴一、认识数轴 二、画数轴的步骤:一画、二取、三定(1)画直线和正方向:就是先画一条直线,一般画成水平的直线,并选取正方向,一般取向右为正方向(2)取原点:通常原点选在直线中间,标上数字0(3)定单位长度:选取适当的长度为单位长度并在数轴上标出刻度。三、数轴上标...

weixin_35382961的博客 8365
上一篇: 【D3使用教程】(3) 添加比例尺
下一篇: 【前端3分钟】高效使用 JQuery
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值