js 画图--简单的直线图

因为近期,项目用到了JS画图,从网上搜了下,有用DIV一个一个联接成的直线图,那个当行数超过五百以上的时候,就会出现效率问题。

后又找到了适合IE 的 VML 不适合FIREFOX的。。但是互联网是强大的。。从高人处知道了一个 excanvas。google开源的,可以在IE中模拟出来。。也就是说一些基本的都可以模拟出来。。OK。这就是要我要的了。。

 

 

首先,当然需要下载环境了。。

 

现在我们再来画个简单的HTML页面,里面有一张表格,表格里面大概有几行数据。。这数据就是我们要画直线的了。。

 

样式:

 

body {
margin:0px;padding:0px;

}
body,td,th{
 font-size:12px;
}
div{
	width:960px;
	}
table{
	 color:#464646;
	 font-family:Arial;
	}
 tr{
		background:#dddffd;
		}
 
       td{
			width:18px;height:18px;height:18px;text-align:center;
		}
		 
.gray{
				
} 
.blue{
	background:blue
}

.red{
	background:red
}

.gray_a{
	background:gray;
	}
.tdback{
background:#DBDBDB none repeat scroll 0 0;
height:3px;
}

 

 

HTML页面

 

<div>
<table>
	<tbody>
		<tr><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td></tr>
		<tr><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td></tr>
		<tr><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td></tr>
		<tr><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td><td class="gray">2</td></tr>
		<tr class="tdback"><td colspan="17"></td></tr>
		<tr><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td><td class="gray">2</td></tr>
		<tr><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td></tr>
		<tr><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td></tr>
		<tr><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td><td class="gray">2</td></tr>
		<tr><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td><td class="gray">2</td></tr>
		<tr class="tdback"><td colspan="17"></td></tr>
		<tr><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">1</td><td class="blue">1</td><td class="gray">1</td><td class="gray">1</td><td class="gray">2</td><td class="gray">2</td><td class="gray" >2</td><td>2</td><td class="gray">2</td><td class="gray">2</td><td class="red">2</td><td class="gray">2</td></tr> 
		 
</tbody>
</table>

</div>

  

 

js 代码:

<script> 

<!--
/**
 画布初始化。
 以表格行总数-1 即为需要生成的画布。
 id 表格需要呈现的id 或class
*/
function paintDiv(id){
 var ary = $(id).get();
  
  var size = $(ary).size();
  
 
  var pre= null;//上一个坐标点
  if(size > 1)  pre = $(ary).get(0);
  
  var str ="";//定义画布字符串
  
  var w = 20;//定义宽度20px
  
  var h = 20;//定义高度20px
  
 
  var curId = id;
 
  curId = id.replace(/\./g,'');
 
  for(var i=1;i<size;i++){
      var next = $(ary).get(i);
	  //得到上一X,Y坐标点。
	  
	  var x0 =  parseInt(pre.offsetLeft);//宽
	  
	  var y0 = parseInt(pre.offsetTop);//高
	  
	  var x1 = parseInt(next.offsetLeft);//宽
	  
	  var y1 = parseInt(next.offsetTop);//高
	  
	  //画布左上角坐标。。如果点在起点在左,那么第一个坐标的X点《第二点的X点。反之,在右,第二个坐标的X点》第一个坐标X点。
	  //如果是同一列,那么二者X坐标点应该是相同的。。
	  
	  var w0 =0;//宽
	  var h0 = 0;//高
	  
	  var width = 0;
	  var height = h;
	  
	  var left = -1;
	  if((x0 - x1)>0) left = -1;//第二个坐标点位于左,第一个坐标位于右。
	  else if((x0-x1)==0) left = 0;//第二个坐标点与第一个坐标点,在同一列。
	  else if((x0-x1)<0) left =1;//第二个坐标点位于右。第一个坐标位于左。
	  
	  if(left == 1){
	     	w0 = x0 +w/2 ;//宽度 2
		 h0 = y0+h/2;//2
		 
		 width = (x1 - x0) ;
		 height = (y1-y0);
	 }else if(left == 0){
	   	 h0 = y0 +h/2;//2
		w0 = x0;
	    
		 width = w;
		 height = (y1 - y0) ;
	}else if(left == -1){
	    	 w0 = x1+w/2;//2
		 h0 = y0 +h/2;//2
		 
		 width =  x0 - x1 ;
		 height = (y1-y0);
	}
	 
	   document.write("<canvas id="+curId+i+" width="+width+" height="+height+" class=n"+curId+" style='position:absolute;top:"+h0+"px;left:"+w0+"px;'></canvas>");
	 	   x0=0;y0=0;x1=0;y1=0;
	   
	  //把下一坐标对象赋给上一个坐标
            pre = null;
	  pre = next;
	 
      }
 
 }
 paintDiv('.blue');
 paintDiv('.red');
 //
 
//--> 
 </script>

 上面的JS代码用于根据表格中的 小格,生成多少个 canvas

 

 下面这个才是真正用于画线的。

<script>
 /**
  x0  起点坐标 X
  Y0  起点坐标 Y
  X1  终点坐标 X
  Y1  终点坐标 Y
  ID  画布ID
  COLOR 线颜色 默认为 green
  lineWidth 线大小。默认为1
 **/
 function drawLine(x0,y0,x1,y1,id,color,lineWidth){
   var ctxt = document.getElementById(id).getContext('2d');
    ctxt.save();
	ctxt.strokeStyle =color==null?"green":color;
	ctxt.lineWidth = lineWidth==null?1:lineWidth;
     
	ctxt.beginPath();
    ctxt.moveTo(x0 , y0);
    ctxt.lineTo(x1, y1);
    ctxt.closePath();
    ctxt.stroke();
	ctxt.restore();
 }

 
 /**
  画布
 */
function canvasLine(pointId){

   
  var cavs = $(pointId).get();
  //var size = $(canvasId).size();//画布
  //$("#size").text(size);
  var ary = $(pointId).get();//坐标点样式
  var size = $(ary).size();
  
 
  var pre= null;//上一个坐标点
  if(size > 1)  pre = $(ary).get(0);
  
  var str ="";//定义画布字符串
  
  var w = 20;//定义宽度20px
  
  var h = 20;//定义高度20px
  
 
 
  for(var i=1;i<size;i++){
      var next = $(ary).get(i);
	  //得到上一X,Y坐标点。
	  
	  var x0 =  parseInt(pre.offsetLeft);//宽
	  
	  var y0 = parseInt(pre.offsetTop);//高
	  
	  var x1 = parseInt(next.offsetLeft);//宽
	  
	  var y1 = parseInt(next.offsetTop);//高
	  
	  //画布左上角坐标。。如果点在起点在左,那么第一个坐标的X点《第二点的X点。反之,在右,第二个坐标的X点》第一个坐标X点。
	  //如果是同一列,那么二者X坐标点应该是相同的。。
	  
	  var w0 =0;//宽
	  var h0 = 0;//高
	  
	  var width = 0;
	  var height = h;
	  
	  var left = -1;
	  if((x0 - x1)>0) left = -1;//第二个坐标点位于左,第一个坐标位于右。
	  else if((x0-x1)==0) left = 0;//第二个坐标点与第一个坐标点,在同一列。
	  else if((x0-x1)<0) left =1;//第二个坐标点位于右。第一个坐标位于左。
	  var pontId = pointId.replace(/\./g,'');
	  if(left == 1){
	     w0 = 0 ;//高度 
		 h0 = 0;
		 
		 width = (x1 - x0);
		 height = y1-y0;
 		 drawLine(w0,h0,width,height,pontId+i);
	  }else if(left == 0){
	    w0 = w/2;
	    h0 = 0 ;
		 width = w/2;
		 height = (y1 - y0) ;
		 
		 drawLine(w0,h0,width,height,pontId+i);
	  }else if(left == -1){
	     w0 = x0-x1;
		 h0 = 0 ;
		 
		 width =  0;
		 height = (y1-y0);
		drawLine(w0,h0,width,height,pontId+i);
	  }

	   x0=0;y0=0;x1=0;y1=0;
	   
	  //把下一坐标对象赋给上一个坐标
      pre = null;
	  pre = next;
	 
 }


 
}

 

 

基本上所有的代码都在这里了。。如果哪位需要其他的代码可以与我联系. wrong1111@126.com 或者 343886028 QQ 注明 js

 

下面是所有的代码源码

 

HTML + js 生成一个线路走向图,可以标记总共有多少站,用户到达第几站了 HTML + js 生成一个线路走向图例如:用来记录用户到达那一站了,可以标记总共有多少站,用户到达第几站了用来记录用户到达那一站了,可以标记总共有多少站,用户到达第几站了 2.运行 保存为.html,浏览器打开就行了 阅读详情

相关推荐

Python超简单容易上手的画图工具库

今天,在网上发现一款很棒的python画图工具库。很简单的api调用就能生成漂亮的图表。并且可以进行一些互动。 pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒。废话不多说下来直接看效果(对于我这种没审美感的人来是我觉得挺漂亮的)。 使用之前需要安装一下:安装命令很简单:Pip就可以安装: 这里我安装在我的虚拟环境中了:pip install pyecharts 。 官方的文档和demo很详细。

梦子微信 4165

JS画几何图形之一【直线】

JS画图的想法经过大脑的时候,觉得有点意思,所以就实践了一番。JS画图为系列文章,本是讲点、线和面 先看样例:http://www.zhaojz.com.cn/demo/draw5.html 一、点   这里的点我们使用span标签表示 //描点,参数有点的大小,颜色,点的坐标和标签; 很明显opts参数是一个对象 function drawPoint(opts){ doc...

weixin_30608503的博客 422

WPF使用ECharts做曲线图实例

首先说我这里是因为实际工作时需要用到了所以进行了学习使用,本人所在公司就我一人独苗连个交流讨论的人都没得,自己边学先做。要求是做一个多曲线图组合数据展示折线图:这个就是需求,需要照着这个样子做出来,也使用其它技术做过但是没有实现最后换成了echarts。

weixin_45742249的博客 1934

零基础学习WEB前端开发(九):表格标签

一、表格的作用 表格的作用是为了展示数据,如下图所示(摘选自东方财富网股票频道): 二、表格的基本语法 表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。 <table> <tr> <td&g

陶小桃Blog 500

DIV+JS画图,DIV与DIV之间的连线!

实现DIV与DIV之间的连线,工程流程图那样.使用DIV+JS! 我封装了一个基于vml/svg画线条的跨浏览器的函数 用法: var g = new FlowGraphic(); var arrow = g.drawArrow(5,26,200,300,"red"); var arrow = g.drawArrow(5,26,200,200,"red");

WEBGL Shader零基础教程(四):片元着色器核心逻辑

本文系统介绍了WebGL渲染管线中片元着色器的核心概念与应用。主要内容包括:1)片元着色器在渲染管线中的定位与作用,作为逐像素处理单元接收插值数据并计算最终颜色;2)输入数据类型与使用规则,重点讲解varying变量和uniform变量的应用场景;3)颜色计算的核心逻辑,涵盖基础色、渐变、纹理采样和颜色混合;4)进阶特效实现与性能优化技巧,包括交互效果、内置函数组合和GPU计算优化;5)通过综合案例演示了纹理、波纹与交互效果的整合实现。文章提供了完整的代码示例和调试建议,为后续学习光照模型、后期处理等高级渲

分享知识,拥抱变化 1372

使用JS画直线

作者:chenwei 使用JS画直线:包括水平线与垂直线 [code="js"] function drawhline(from_x,to_x, y) { for(var i=from_x;i

wensuper的专栏 1193

学习STM32的无人机控制

设计并实现无人机控制系统,使用STM32单片机进行控制。无人机控制系统主要包括飞行控制、姿态控制、定位导航等功能。以下是一个基于STM32的无人机控制系统的代码案例。以上是一个基于STM32的无人机控制系统的代码案例,包括飞行控制、姿态控制和定位导航等功能。请根据实际情况进行修改和完善。

qq_67153941的博客 837

chart.js折线图_如何使用Chart.js创建折线图

在这本有关使用Chart.js进行数据设计的课程的视频教程中,您将通过使用Chart.js框架在网格上绘制一系列点来创建简单的折线图。 完成此操作后,我们将观察Chart.js框架为您完成其余的繁重工作。 您可以在此处找到源代码: 起跑笔 成品笔 如何使用Chart.js创建折线图 设置画布 首先打开本教程的启动CodePen ,然后单击Fork按钮以创建它的新副本。 这将...

Web design 教程小屋 820

PaddleOCR实战:给图片‘加个框’,轻松搞定小图和长图文字识别不准的难题

本文探讨了PaddleOCR在处理小图和长图时识别精度下降的问题,并提出通过图像边框预处理技术显著提升OCR识别效果。详细介绍了使用OpenCV实现智能边框添加的方法,包括核心原理、工程实践中的关键细节以及性能优化策略,帮助开发者轻松解决非常规尺寸图像的文本检测难题。

weixin_29313547的博客 186

【AutoDL + Langchain-Chatchat】从零构建高效本地 RAG 知识库问答系统:实战保姆级教程(含避坑指南)

本文详细阐述如何在AutoDL云平台,如何利用Langchain-Chatchat构建高效的本地RAG知识库问答系统,并深入解析RAG架构。从环境搭建到实战部署,从问题排查到性能优化,提供一份全面实用的指南,助力开发者快速构建智能问答应用。

拾光夕拾的博客 1803

【数据可视化】【1】手把手教你使用d3.js绘制折线图

借助于强大的d3.js实现折线图的绘制,涵盖了数据可视化的基本概念及d3库的使用技巧。本文分享了绘制折线图的步骤,包括数据准备、轴的添加以及样式的调整。通过本文,读者可以快速了解在web开发中如何借助三方库绘制折线图。

C++程序猿 3838

Truncated SVD for faster dection

Truncated SVD方法最先被提出在《Fast R-CNN》论文中,用于降低全连接层的运算量,提升模型的速度。在卷积神经网络的分类任务中,FC层的运算速度远远大于CONV层,而在Fast R-CNN的目标检测任务中,大多数的运算时间发生在FC 的运算中,是因为针对每张输入图片,只进行一次卷积操作,而要对生成的Region Proposal,大致两千个,进行全连接操作进行分类与Bounding...

weixin_35747666的博客 1535

python最简单的画图_Python超简单容易上手的画图工具库

今天,在网上发现一款很棒的python画图工具库。很简单的api调使用就能生成漂亮的图表。并且可以进行少量互动。pyecharts 是一个使用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。使用 Echarts 生成的图可视化效果非常棒。废话不多说下来直接看效果(对于我这种没审美感的人来是我觉得挺漂亮的)。用之前需要安装一下:安装命令很简单:Pip即可以安...

weixin_39942400的博客 462

太美了!现代女主jk海军风穿搭四视图

哪个女孩子初高中的时候不买几套JK衣服啊,穿上完全是青春女孩。那还愣着干啥,不得也给你的漫剧女主也穿上!直接就是分享三套JK穿搭,红棕双麻花辫配经典水手服,是那种乖乖巧巧的元气学妹;粉色羊毛卷双马尾,搭配蝴蝶结和小挎包甜度直接拉满;还有灰棕色侧麻花辫,浅蓝上衣配黑色百褶裙,温柔里又带点小酷。下面把这三套角色的完整提示词分享出来,喜欢哪套就拿去参考,改改发型和配色,还能继续解锁新角色!

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 51

(四)美赛画图篇:画图模板+画图工具

美赛画图篇:画图模板+画图工具(一)画图模板(二)画图工具 因为散点图、折线图等多与数据有关,且需相关软件生成,故此处多是通用模板。直接替换文字内容即可。 (一)画图模板 1、Visio圆圈图 适合于:指标体系(E题常用) 点击下载:1 C币 如果不想花费且时间充足,悄咪咪地说,在visio-模板搜索可以找到很多。(稍微会耗一点时间) 2、简单指标体系图PPT 适合于指标体系 点击下载:0 C币...

weixin_43689393的博客 1万+

k线图html5插件,Kline 一个JavaScript K线图插件

Kline 本项目扒了某网站的K线插件做了一些封装和二次开发,使其更加便于使用和修改,方便后来的开发者. 修改主要涉及以下几个点:使用 webpack 打包 css/images/html使用 ES6 + Babel 对原有代码进行了拆分和重构删除了一些不必要的逻辑把源码中可配置的部分抽出来添加了对 websocket(stomp over websocket) 连接方式的支持增加对外接口及...

weixin_42465238的博客 3722

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

坚韧与专注 2159

使用chart.js制作动态折线图

为了能给用户带来更好的使用体验,公司产品的传输状态能够让客户清晰的看到,从而实时观察设备和网络的情况,为了保证引入库的统一性,用原本的chart.js的库来做动态的折线图:1.定义初始变量var myLine=""; var maxLength=30; var index_bit = new Array(30); var data = [0]; for (var i = 0; i &lt; 30;...

闪亮的塔科特的博客 9286

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 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'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('DeepLearnToolbox'));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('state',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'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',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 = 'sigm';%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, 'Too big error');```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('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';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)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';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, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% 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'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 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, 'Too big error');```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('state',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, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',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, 'Too big error');%% ex3 neural net with dropoutrand('state',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, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % 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, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % 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, 'Too big error');%% 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('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % 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, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

HQChart核心功能解析:K线图、走势图、画图工具一网打尽

HQChart是一个功能强大的开源金融图表库,专为股票、期货、数字货币等行情分析而设计。这个跨平台的图表解决方案支持H5、微信小程序、Vue、UniApp等多种前端框架,提供完整的K线图、走势图和丰富的画图工具,帮助开发者快速构建专业的金融分析应用。 ## 🚀 强大的K线图功能 HQChart的K线图功能是其核心亮点,支持多种技术分析和可视化需求: ### 多周期K线展示 支持日线、周线、

gitblog_00869的博客 836

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaScript画图工具:为什么成为Web开发利器?优势解析

在Web开发领域,JavaScript画图工具已经成为前端工程师和数据可视化开发者不可或缺的利器。这些工具不仅让在浏览器中绘制图形变得简单高效

2501_94209049的博客 342

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Highcharts js画图插件

Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;对个人用户完全免费;纯JS,无BS;支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼装图、散布图;跨语言:不管是PHP、Asp.net还是Java都可以使用,它只需要三个文件:一个是Highcharts的核心文件highchart

fover717的专栏 4927

前端折线图中背景_JS+html5 canvas实现的简单绘制折线图效果示例

本文实例讲述了JS+html5 canvas实现的简单绘制折线图效果。分享给大家供大家参考,具体如下:1、实例代码:画图#divContainer{margin-top: 20px;text-align: center;}#cv{width: 300px;height: 200px;border-bottom: 2px solid #000;border-left: 2px solid #000;...

weixin_39959615的博客 369

js折线图设置y轴刻度_D3.js实现折线图的方法详解

前言D3.js是一个帮助开发者操纵基于数据的文档的JavaScript类库,在《D3.js实现柱状图的方法详解》中已经给大家介绍过如何用D3.js来实现一个简单的柱状图了,今天我们来学习用D3.js来实现折线图,感兴趣的朋友们下面来一起看看吧。折线图由坐标轴、线条和点组成。和实现柱状图一样,我们还是先把大概的画图框架搭起来,代码如下(别忘了添加D3.js):折线图.container {margi...

weixin_35068077的博客 757

JavaScript Canvas 实现自定义多折线图

JavaScript Canvas 实现自定义多折线图 大家好,我是梦辛工作室的灵,今天给大家讲一讲如何实现一个好看的自定义多折线图,按惯例来,先看实现效果如下: 画面效果还是可以吧,颜色和内容都可以自定义哦,给大家讲一下我的绘制逻辑,我们需要将绘图封装成一个对象,并先给定一些默认值,比如画布的宽和高,我们将画布分成上下两部分,定义上面30%用于绘制标题和留出一些空白,图表占用60%,剩下的10...

灵神翁的博客 1152

Echarts——画图三步曲

今天,小编以“画图三步曲”作为和大家一起学习Echarts的开端。 接下来,小编就跟大家介绍一下这个所谓的“画图三步曲”: 引用文件(主要是echarts的JS文件和数据资源) 设置容器 为生成图表做一些配置(核心步骤) 下面就为大家一一介绍。 1.引用文件 创建一个 HTML 页面,引入 echarts.min.js: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

four_three的博客 2258
上一篇: webwork java.lang.reflect.InvocationTargetException
下一篇: WEB开发,网页可用到的浏览器属性
茄子煸土豆
博客等级 码龄19年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值