js饼状图代码,绘制饼图的代码

本文目录一览:

怎么使用canvas循环生成饼图

function drawCircle(canvasId, data_arr, color_arr, text_arr) {

    var pi2 = Math.PI*2;

    var canvas =document.getElementById(canvasId);    

    var c =canvas.getContext(“2d”);

    c.font =”12px Times New Roman”;

    var startAgl = 0;

    var agl;

    for(var i=0; i data_arr.length; i++){ 

        //绘制饼图

        agl = data_arr[i] * pi2 + startAgl;

        c.fillStyle=color_arr[i];

        c.beginPath();

        c.moveTo(200,200);

        c.arc(200, 200, 150, startAgl, agl, false);

        c.lineTo(200,200);

        //c.stroke();

        c.fill();

        startAgl = agl;

        //绘制图例

        c.fillRect(360, 50+18*i,16,16);

        c.fillStyle=”#000000″;

        c.fillText(text_arr[i], 380, 62+18*i );    

    }

}

以上是绘制饼图的代码,效果如下:

至于

%%这个是jsp代码标记,不能直接调用js代码

js怎么制作饼状图?

有用SVG的方法

还有用HTML5的canvas控件

不过这个如果用源生方法的话比较复杂

你可以用一些已经有的框架来做

比如说:Dojo Charting

这是一个JS库.

你可以参考下

还有就是一些有名气的JS库

比如:Ext4.0版本的chart类

示例如下:

JS框架都是一般兼容的

用jsp怎样生成柱状图,饼状图,折线图

jsp生成柱状图,饼状图,折线图可以借助于jfreechart。

1、柱状图的生成源码:

/**

* 生产柱状图

* @version 1.0

* @since

*/

@SuppressWarnings(“serial”)

public class PillarServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

response.setContentType(“text/html”);

// 使用普通数据集

DefaultCategoryDataset chartDate = new DefaultCategoryDataset();

// 增加测试数据,第一个参数是访问量,最后一个是时间,中间是显示用不考虑

chartDate.addValue(55, “访问量”, “2010-01”);

chartDate.addValue(65, “访问量”, “2010-02”);

chartDate.addValue(59, “访问量”, “2010-03”);

chartDate.addValue(156, “访问量”, “2010-04”);

chartDate.addValue(452, “访问量”, “2010-05”);

chartDate.addValue(359, “访问量”, “2010-06”);

try {

// 从数据库中获得数据集

DefaultCategoryDataset data = chartDate;

// 使用ChartFactory创建3D柱状图,不想使用3D,直接使用createBarChart

JFreeChart chart = ChartFactory.createBarChart3D(

“网站月访问量统计”, // 图表标题

“时间”, // 目录轴的显示标签

“访问量”, // 数值轴的显示标签

data, // 数据集

PlotOrientation.VERTICAL, // 图表方向,此处为垂直方向

// PlotOrientation.HORIZONTAL, //图表方向,此处为水平方向

true, // 是否显示图例

true, // 是否生成工具

false // 是否生成URL链接

);

// 设置整个图片的背景色

chart.setBackgroundPaint(Color.PINK);

// 设置图片有边框

chart.setBorderVisible(true);

Font kfont = new Font(“宋体”, Font.PLAIN, 12);    // 底部

Font titleFont = new Font(“宋体”, Font.BOLD, 25); // 图片标题

// 图片标题

chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));

// 底部

chart.getLegend().setItemFont(kfont);

// 得到坐标设置字体解决乱码

CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();

categoryplot.setDomainGridlinesVisible(true);

categoryplot.setRangeCrosshairVisible(true);

categoryplot.setRangeCrosshairPaint(Color.blue);

NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();

barrenderer.setBaseItemLabelFont(new Font(“宋体”, Font.PLAIN, 12));

barrenderer.setSeriesItemLabelFont(1, new Font(“宋体”, Font.PLAIN, 12));

CategoryAxis domainAxis = categoryplot.getDomainAxis();

/*——设置X轴坐标上的文字———–*/

domainAxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 11));

/*——设置X轴的标题文字————*/

domainAxis.setLabelFont(new Font(“宋体”, Font.PLAIN, 12));

/*——设置Y轴坐标上的文字———–*/

numberaxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 12));

/*——设置Y轴的标题文字————*/

numberaxis.setLabelFont(new Font(“宋体”, Font.PLAIN, 12));

/*——这句代码解决了底部汉字乱码的问题———–*/

chart.getLegend().setItemFont(new Font(“宋体”, Font.PLAIN, 12));

// 生成图片并输出

ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 1.0f,

chart, 500, 300, null);

} catch (Exception e) {

e.printStackTrace();

}

}

}

2、生成饼状统计图:

/**

* 生成饼状统计图

* @version 1.0

* @since

*/

@SuppressWarnings(“serial”)

public class CakeServlet extends HttpServlet {

protected void service(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

response.setContentType(“text/html”);

// 默认数据类型

DefaultPieDataset dataType = new DefaultPieDataset();

// 数据参数 内容,数量

dataType.setValue(“IE6”, 156);

dataType.setValue(“IE7”, 230);

dataType.setValue(“IE8”, 45);

dataType.setValue(“火狐”, 640);

dataType.setValue(“谷歌”, 245);

try {

DefaultPieDataset data = dataType;

// 生成普通饼状图除掉 3D 即可

// 生产3D饼状图

PiePlot3D plot = new PiePlot3D(data);

JFreeChart chart = new JFreeChart(

“用户使用的浏览器类型”,            // 图形标题

JFreeChart.DEFAULT_TITLE_FONT, // 标题字体

plot,                          // 图标标题对象

true                           // 是否显示图例

);

// 设置整个图片的背景色

chart.setBackgroundPaint(Color.PINK);

// 设置图片有边框

chart.setBorderVisible(true);

// 配置字体

Font kfont = new Font(“宋体”, Font.PLAIN, 12);    // 底部

Font titleFont = new Font(“宋体”, Font.BOLD, 25); // 图片标题

// 图片标题

chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));

// 底部

chart.getLegend().setItemFont(kfont);

ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 1.0f,

chart, 500, 300, null);

} catch (Exception e) {

e.printStackTrace();

}

}

}

3、柱状分布统计图:

/**

* 柱状分布统计图

* @version 1.0

* @since

*/

@SuppressWarnings(“serial”)

public class ParagraphsServlet extends HttpServlet {

protected void service(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

response.setContentType(“text/html”);

DefaultCategoryDataset dataTime = new DefaultCategoryDataset();

// 这是一组数据

dataTime.addValue(52, “0-6”, “2010-1-1”);

dataTime.addValue(86, “6-12”, “2010-1-1”);

dataTime.addValue(126, “12-18”, “2010-1-1”);

dataTime.addValue(42, “18-24”, “2010-1-1”);

// 这是一组数据

dataTime.addValue(452, “0-6”, “2010-1-2”);

dataTime.addValue(96, “6-12”, “2010-1-2”);

dataTime.addValue(254, “12-18”, “2010-1-2”);

dataTime.addValue(126, “18-24”, “2010-1-2”);

// 这是一组数据

dataTime.addValue(256, “0-6”, “2010-1-3”);

dataTime.addValue(86, “6-12”, “2010-1-3”);

dataTime.addValue(365, “12-18”, “2010-1-3”);

dataTime.addValue(24, “18-24”, “2010-1-3”);

try {

DefaultCategoryDataset data = dataTime;

// 使用ChartFactory创建3D柱状图,不想使用3D,直接使用createBarChart

JFreeChart chart = ChartFactory.createBarChart3D(

“网站时间段访问量统计”,

“时间”,

“访问量”,

data,

PlotOrientation.VERTICAL,

true,

false,

false

);

// 设置整个图片的背景色

chart.setBackgroundPaint(Color.PINK);

// 设置图片有边框

chart.setBorderVisible(true);

Font kfont = new Font(“宋体”, Font.PLAIN, 12);    // 底部

Font titleFont = new Font(“宋体”, Font.BOLD, 25); // 图片标题

// 图片标题

chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));

// 底部

chart.getLegend().setItemFont(kfont);

// 得到坐标设置字体解决乱码

CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();

categoryplot.setDomainGridlinesVisible(true);

categoryplot.setRangeCrosshairVisible(true);

categoryplot.setRangeCrosshairPaint(Color.blue);

NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();

barrenderer.setBaseItemLabelFont(new Font(“宋体”, Font.PLAIN, 12));

barrenderer.setSeriesItemLabelFont(1, new Font(“宋体”, Font.PLAIN, 12));

CategoryAxis domainAxis = categoryplot.getDomainAxis();

/*——设置X轴坐标上的文字———–*/

domainAxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 11));

/*——设置X轴的标题文字————*/

domainAxis.setLabelFont(new Font(“宋体”, Font.PLAIN, 12));

/*——设置Y轴坐标上的文字———–*/

numberaxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 12));

/*——设置Y轴的标题文字————*/

numberaxis.setLabelFont(new Font(“宋体”, Font.PLAIN, 12));

/*——这句代码解决了底部汉字乱码的问题———–*/

chart.getLegend().setItemFont(new Font(“宋体”, Font.PLAIN, 12));

ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 1.0f,

chart, 500, 300, null);

} catch (Exception es) {

es.printStackTrace();

}

}

}

js 做3D的柱状图和饼状图的js库有哪些?求大神们介绍。只限制js库,或者纯javascript。谢谢~~

推荐基于webGL的3D框架类库!three.js的知名度很高,在开源中国、思否、掘金等技术社区会有很多应用指导案例,很多人问我是不是需要学webGL,three.js正是对webgl进行了封装,提供更高层的渲染接口,不用重新学习3D绘图底层逻辑。

题主没有提供太多背景信息,是否具备中高级前端开发基础?three.js相对于初学者门槛很高,需要花费更多的时间,一个加载模型、调光、选择模型弹框的功能,就能写出Threejs上百行代码。

有一个针对前端转3D开发初学者的解决方案,推荐thingjs在线平台,开发体验比较如下:

提醒一下,three.js并没有特定的行业应用,属于技术研究范畴;thingjs专注于物联网3D可视化领域,对于智慧城市、智慧工厂、安全消防、城市交通可视化应用开发者非常友好!做前端技术应用,推荐物联网3D商业项目方向,15万个开发者的一致选择!

原创文章,作者:FTGHC,如若转载,请注明出处:https://www.506064.com/n/331106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
FTGHC的头像FTGHC
上一篇 2025-01-16 15:47
下一篇 2025-01-16 15:47

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29

发表回复

登录后才能评论