首先代码并不是原创。
然后,准备弄一个根据数据库创建图表的框架,所以自己现在网上学了一点,先做个饼状图来看看:
<script type="text/javascript" language="javascript">
//设置几个全局变量 计数,概率名数组,概率大小数组,还有分类颜色数组
var DataNum = 0;
var data_arr = new Array();//
var text_arr = new Array();
var color_arr = new Array();
var color_arr = ["#00FF21", "#FFAA00", "#00AABB", "#FF4400","#FF0000"];//颜色可以多弄几个但是我懒得弄
function run(){ //执行画图方法
drawCircle("canvas_circle");
}
function drawCircle(canvasId){ //画饼状图的方法
data_arr = new Array();
text_arr = new Array();//每次执行都要初始化数据
if(DataNum == 0){
alert("无数据");
return;
}
else{
var j=parseFloat(0);
for(var i = 0; i < DataNum; i++){ //动态添加
data_arr[i] = document.getElementById("data_arr"+i).value; //数据
text_arr[i] = document.getElementById("text_arr"+i).value; //数据名称
j=parseFloat(j)+parseFloat(data_arr[i]); //相加的时候强制转换成浮点型,否知直接字符相加
}
if(j!=1){alert("输入比例不为1,请输入正确的比例");return;}
}
var c = document.getElementById(canvasId); //获取canvas对象
var ctx = c.getContext("2d");
alert("ss");
ctx.clearRect(0,0,500,500);
var radius = c.height /2-20; //半径
var ox = radius +20, oy = radius +20; //圆心
var width = 30, height = 10; //图例宽和高
var posX = ox * 2 + 20, posY = 30; //
var textX = posX + width + 5, textY = posY + 10;
var startAngle = 0; //起始弧度
var endAngle = 0; //结束弧度
for (var i = 0; i < data_arr.length; i++)
{
//绘制饼图
endAngle = endAngle + data_arr[i] * Math.PI * 2; //结束弧度
ctx.fillStyle = color_arr[i]; //选择颜色
ctx.beginPath();
ctx.moveTo(ox, oy); //移动到到圆心
ctx.arc(ox, oy, radius, startAngle, endAngle, false);
ctx.closePath();
ctx.fill();
startAngle = endAngle; //设置起始弧度
//绘制比例图及文字
ctx.fillStyle = color_arr[i];
ctx.fillRect(posX, posY + 20 * i, width, height);
ctx.moveTo(posX, posY + 20 * i);
ctx.font = 'bold 12px 微软雅黑'; //斜体 30像素 微软雅黑字体
ctx.fillStyle = color_arr[i]; //"#000000";
var percent = text_arr[i] + ":" + 100 * data_arr[i] + "%";
ctx.fillText(percent, textX, textY + 20 * i);
}
}
function add(){ //添加数据
var new1 = dataInput.insertRow();
var new11 = new1.insertCell();
var new12 = new1.insertCell();
new11.innerHTML ="数据名:<input type='text' size='10'id='text_arr"+DataNum+"'/>";
new12.innerHTML ="百分比:<input type='text' size='10'id='data_arr"+DataNum+"'/>";
DataNum++;
}
//页面加载时执行init()函数
// window.onload = init;
</script>
就这些,先记着,也许以后有用。
下面是HTML5代码
<canvas id="canvas_circle" width="500" height="300">
浏览器不支持canvas
</canvas>
分享到:
相关推荐
在这个项目中,我们将探讨如何使用HTML5的Canvas API来创建饼状图。 首先,我们需要了解Canvas的基本用法。HTML5的`<canvas>`元素提供了一个二维渲染上下文,我们可以通过JavaScript访问这个上下文,调用其提供的...
本项目"Android 画饼图"旨在提供一个立体和平面效果的饼图组件,适用于各种需要展示部分与整体之间关系的应用场景。下面将详细介绍如何在Android中实现饼图,以及相关的关键知识点。 首先,我们要理解饼图的基本...
JavaScript 画饼图是一种在网页上可视化数据的常见方法,特别是在数据分析和信息展示中。饼图可以直观地表示各部分占整体的比例,非常适合用来展示各项数据的占比情况。在这个话题中,我们将深入探讨如何使用纯 ...
在JavaScript的世界里,画饼图是一种常见的数据可视化方式,它能直观地展示各项比例关系,尤其适用于呈现多个部分组成整体的情况。"JS完美画饼图"这个话题涉及到使用JavaScript库或者自定义代码来创建动态、交互式的...
下面我们将深入探讨如何利用Canvas API创建饼形图。 首先,我们需要一个Canvas元素在HTML中,通过`<canvas>`标签来定义。然后,我们需要获取到这个Canvas元素的2D渲染上下文,这通常通过调用`canvas.getContext('2d...
用matlab画饼状图代码 昂永 :onion: 因为如果我必须再次启动MATLAB,我将结束自己:trade_mark: 一个与C ++ 98兼容的可扩展数据可视化框架。 通过相互叠加图像生成层(背景,轴处理程序,图例,绘图仪等)来创建动态...
"android画饼图"这个主题主要涉及到如何在Android应用中自定义一个饼状图控件。在这个项目中,开发者分享了其在GitHub上的源代码,供其他开发者学习和使用。 1. **自定义控件**:在Android中,如果系统自带的图表库...
Android本身虽然提供了Canvas类来支持自定义绘图,但直接用它来绘制复杂的图表会比较繁琐。因此,通常我们会选择第三方库,如`MPAndroidChart`。这个库功能强大,易于使用,且社区活跃,有丰富的文档和示例。 `...
windows.title("画饼图") # 设置画布样式 canvas = Canvas(windows, height=500, width=500) # 将画布打包到窗口 canvas.pack() # 利用画布的create_arc画饼形 # (400,400)和(100,100)为饼形外围的矩形...
你可以使用`Path`对象画折线,`RectF`对象画柱子,以及`Paint`对象设置颜色和样式。 - **数据绑定**:你需要为每个数据点创建坐标,并根据数据更新绘图逻辑。 - **动画效果**:为了实现动态效果,可以使用`...
Canvas是一个基于矢量图形的画布,通过JavaScript API可以实现动态、可交互的图形绘制。开发者可以使用路径、矩形、圆形、文字、图像等多种元素进行绘图,并可以对这些元素进行变换、颜色处理、混合模式等操作。 在...
这将在Canvas上画出一条从(10,10)到(100,100)的蓝色线。 3. **绘制面** 绘制面通常涉及填充形状,如矩形、椭圆或自定义路径。使用`FillRect`或`Rectangle`方法绘制矩形,`Ellipse`或`RoundRect`绘制椭圆或圆角...
在HTML5 Canvas中,我们可以利用`arc()`方法来绘制圆弧,结合`beginPath()`和`stroke()`或`fill()`来完成饼状图的制作。 首先,你需要创建一个`<canvas>`元素并在HTML中插入,然后通过JavaScript获取Canvas的2D渲染...
在这个游戏中,`<canvas>`可能被用来绘制游戏场景、角色(玩家和月饼)以及游戏得分等元素。开发者会利用JavaScript的绘图API,如`context.beginPath()`、`context.arc()`、`context.fill()`等方法来创建动态的游戏...
`canvas`元素的使用可以简化报表和图表的生成,例如在日本的一些网站上,提供了丰富的HTML5和`canvas`相关资源,以及基于`excanvas.js`的简单柱状图和圆饼图控件。这些控件易于使用和维护,尤其适合内网环境,因为...
<canvas canvas-id="canvas2" style="width:200px;height:200px;border:1px solid #ccc;margin-top:100px;"></canvas> ``` 接下来,我们需要在JavaScript文件中获取`canvas`的上下文(`context`)。微信小程序提供...
本篇文章将深入探讨如何在Java项目中结合jQuery生成饼图、柱状图和折线图,帮助开发者提升数据展示的直观性。 首先,我们需要明白jQuery本身并不直接支持生成图表,但可以通过与第三方图表库结合来实现。例如,我们...