用html编写一幅简单的画,使用html5画简单的折线图

112d967a5a2e545ca4fb8c8c7600206b.png

//得到画布

var can1=document.getElementByIdx_x_x_x("can");

//得到画笔

var cxt=can1.getContext("2d");

//定义图表的数据,该方式为创建数组直接量的方式

var sale_data=[80,92,104,110,68,50,45,90,74,98,103];

//首先为背景进行设置渐变的效果,表示的是从(0,0)到(600,0)即纵坐标上边显示渐变的效果

var g=cxt.createLinearGradient(0,100);

g.addColorStop(0,"#e0e0e0");

g.addColorStop(1,"#ffffff");

//将渐变效果添加在我们的画布上边

cxt.fillStyle=g;

//开始绘制效果

cxt.fillRect(0,can1.width,can1.height);

//设置要绘制方格的行数和列数

var cols=sale_data.length+1;

var rows=4;

//计算每一个小方格的宽度和高度

var cell_width=can1.width/cols;

var cell_height=can1.height/rows;

//设置绘制的颜色

cxt.strokeStyle="#a0a0a0";

//调用绘制表格的函数

drawTable(sale_data);

//绘制表格的函数

function drawTable(data){

cxt.beginPath();

//开始画竖线

for(var i=0;i<=rows;i++){

//计算绘制的坐标

var heiy=cell_height*i;

cxt.moveTo(0,heiy);

cxt.lineTo(can.width,heiy);

}

//绘制横线

for(var j=0;j<=cols;j++){

//计算绘制的坐标

var widx=cell_width*j;

cxt.moveTo(widx,0);

cxt.lineTo(widx,can1.height);

}

//绘制表格完成

cxt.stroke();

//获取数据当中的最大值,以便可以划分纵坐标轴,来进行绘图,即每个像素代表的数值是多少,纵坐标的最大值

var max_val=0;

for(var i=0;i

if(max_val

max_val=data[i];

}

}

//之后我们对最大值再放大一点,作为坐标轴的最大值

max_val=max_val*1.1;

//现在我们计算每个数据的坐标轴

//这里我们将计算出来的坐标轴数据写入到我们的数组对象当中去

var points=[];

for(var i=0;i

var v=data[i];

var px=cell_width*(i+1);

var py=can1.height-can1.height*(v/max_val);

points.push({"x":px,"y":py});

}

//开始绘制折线

cxt.beginPath();

cxt.moveTo(points[0].x,points[0].y);

for(var j=1;j

cxt.lineTo(points[j].x,points[j].y);

}

cxt.strokeStyle="#ee0000";

cxt.stroke();

//绘制坐标的小圆点

for(var j in points){

var p=points[j];

cxt.beginPath();

cxt.arc(p.x,p.y,6,2*Math.PI);

cxt.fillStyle="#ee0000";

cxt.fill();

}

}

转自:http://blog.sina.com.cn/s/blog_7256fe8f010165cb.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

没有bug队——加贝——Python 练习实例 17,18

17.题目&#xff1a; 输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析&#xff1a;利用 while 或 for 语句,条件为输入的字符不为 \n。 注&#xff1a;char:字符串个数&#xff1b;space&#xff1a;空格个数&#xff1b;diagt&…

快速搞定PCA(主成分分析)(原理 代码 案例)

目录 一、基本介绍 1.1原理 1.2主成分分析的几何解释 1.3主要步骤 1.4主成分个数的选取原则 二、主成分分析代码 2.1MATLAB代码 2.2Python代码 三、实用案例 一、基本介绍 1.1原理 主成分分析是最常用的线性降维方法&#xff0c;通过某种线性投影&#xff0c;将高维的数…

html文件查找关键词,批处理查找文件关键字下一行内容

批处理命令 显示所要查找字符串所在行和下面一行内假设查找内容为“问问”&#xff0c;查找文件为“a.txt”&#xff0c;输出文件为“b.txt”。 在线等Echo Off&Setlocal EnabledelayedexpansionFor /f "tokens1* delims:" %%i in (Type a.txt^|Findstr /n "…

Dev C++ 实现Hello World

新建源文件 打开 Dev C&#xff0c;在上方菜单栏中选择“文件 --> 新建 --> 源代码”&#xff1a; 或者按下CtrlN组合键&#xff0c;都会新建一个空白的源文件&#xff0c;如下图所示&#xff1a; 在空白文件中输入本文开头的代码 注意 *表示源文件没有保存 在上方菜…

没有bug队——加贝——Python 练习实例 19,20

19.题目&#xff1a; 一个数如果恰好等于它的因子之和&#xff0c;这个数就称为"完数"。例如61&#xff0b;2&#xff0b;3.编程找出1000以内的所有完数。 程序分析&#xff1a;请参照程序python实例14。我就不在这里过多介绍了。 for j in range(2,1001):k []n …

数据包络分析(DEA)详解(以第八届宁夏省赛为例)

目录 一、基本介绍 1.1原理 1.2CCR模型 1.3BCC模型 二、代码 2.1MATLAB代码 2.2Python代码 三、案例分析 3.1案例介绍 3.2案例分析 3.3案例求解 一、基本介绍 1.1原理 数据包络分析有多种模型&#xff0c;主要为&#xff1a;CCR模型&#xff0c;BBC模型、交叉模型、A&…

Spring Boot EasyUI datagrid

jQueryEasyUI详解 jQuery EasyUI是一组基于jQuery的UI插件集合体&#xff0c;而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。 开发者不需要编写复杂的javascript&#xff0c;也不需要对css样式有深入的了解&#xff0c;开发者需要了解的只…

MATLAB使用教程(三)——在文件中编程

1.把matlab编码调整为utf-8编码 首先&#xff0c;删除这个部分&#xff08;一定先备份这个lcdata.xml文件&#xff0c;备份就是拷贝一个副本&#xff09;&#xff0c;我的是2016版&#xff0c;大概在这里&#xff0c;你们可以搜索以下&#xff1a; 然后&#xff0c;找到这个部分…

Spring Boot EasyUI edatagrid 扩展

edatagrid扩展组件详解 edatagrid组件是datagrid的扩展组件&#xff0c;增加了统一处理CRUD的功能&#xff0c;可以用在数据比较简单的页面。使用的时候需要额外引入jquery.edatagrid.js为了能够把后台自动捕获的异常显示到前台这里必须使用最新版本的jquery.edatagrid.js文件能…

MATLAB使用教程(4)——悄悄滴上手项目

目录 1.计算一元二次方程 2.看一元方程的图形 有个小疑问&#xff1f; 惊喜&#xff1a; 总结 1.计算一元二次方程 这一讲我们以科学计算开始&#xff0c;使用matlab计算精确度很高&#xff0c;我们可以尝试来计算一下黄金分割率&#xff08;定义大家可以自行百度一下&am…

两万字详细爬虫知识储备,数据采集与清洗基础习题(一)头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。为了方便寻找&#xff0c;按照头歌的门类从新整理了实训的分类&#xff0c;朋友们记得看标题哦&#xff0c;按标题寻找&#xff01; 该篇为爬虫知识储备&#xff01; 文章目录 实训一&#xff1a;HTM…

Spring Boot swagger之前后端分离

前后端分离详解 现在的趋势发展&#xff0c;需要把前后端开发和部署做到真正的分离做前端的谁也不想用Maven或者Gradle作为构建工具做后端的谁也不想要用Grunt或者Gulp作为构建工具前后端需要通过接口来协作 可能是JSON格式的RESTFul的接口可能是XML的接口重点是后台只负责数据…

MATLAB基础教程(5)——斐波那契数列

目录 前言 正文开始啦&#xff1a; 总体思路&#xff1a; 首先创建文件&#xff1a; 编写 fibo_use.m 文件的内容代码 编写 fibonacci_mine.m 文件中的代码 代码运行 总结&#xff1a; 前言 斐波那契数列是一个很有趣的数列&#xff0c;有趣的地方在两点&#xff0c;在…

数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。为了方便查找&#xff0c;已按照头歌重新排版&#xff0c;朋友们按照头歌所属门类查找实训哦&#xff0c;该篇为Python爬虫常用模块。 创作不易&#xff0c;一键三连给博主一个支持呗。 文章目录 实…

Spring Boot freemarker导出word下载

freemarker详解 FreeMarker是一款模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本&#xff08;HTML网页、电子邮件、配置文件、源代码等&#xff09;的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c;是一款程序…

学生用计算机怎么累加,计算机一级OFFICE辅导:累加小技巧

我们在工作中常常需要在已有数值的单元格中再增加或减去另一个数。一般是在计算器中计算后再覆盖原有的数据。这样操作起来很不方便。考试大编辑推荐一个小技巧&#xff0c;可以有效地简化老式的工作过程。(1).创建一个宏&#xff1a;选择Excel选单下的“工具→宏→录制新宏”选…

不同进制之间的转化

将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易&#xff0c;就是“按权相加”。所谓“权”&#xff0c;也即“位权”。 假设当前数字是 N 进制&#xff0c;那么&#xff1a; 对于整数部分&#xff0c;从右往左看&#xff0c;第 i 位…

[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)

组合评价模型—模糊Borda(Matlab) 我们的征途是星辰大海&#xff0c;而并非烟尘人间。 目录 组合评价模型—模糊Borda(Matlab) 一、模糊Borda法简介 二、模糊Borda法主要步骤 &#xff08;1&#xff09;计算隶属度 &#xff08;2&#xff09;计算模糊频数 &#xff08;…

计算机桌面右键新建展不开,Win10右键新建不见了怎么办?Win10电脑桌面右键新建没有了解决方法...

近期有Win10用户遇到一个问题&#xff0c;也就是电脑桌面右键新建没有了&#xff0c;比如想要创建一个文本文档、文件夹、Word&#xff0c;没有新建功能无法创建&#xff0c;那么Win10右键新建不见了怎么办&#xff1f;下面装机之家分享一下Win10电脑桌面右键新建没有了解决方法…

最常用的客观赋权方法——熵权法

我们的征途是星辰大海&#xff0c;而并非烟尘人间。 文章目录 一、熵权法的原理 1.1 信息熵 1.2 熵权法 二、熵权法的主要步骤 2.1 数据标准化 2.2 求各指标在各方案下的比值 2.3 求各指标的信息熵。 2.4 确定各指标的权重 2.4.1 通过信息熵计算各指标的权重&#…