您的位置:

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

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万个开发者的一致选择!

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

本文目录一览: 1、怎么使用canvas循环生成饼图 2、js怎么制作饼状图? 3、用jsp怎样生成柱状图,饼状图,折线图 4、js 做3D的柱状图和饼状图的js库有哪些?求大神们介绍。只限制js库,

2023-12-08
chart.js饼状图,sketch饼状图

本文目录一览: 1、echarts.js饼状图之间的间隔怎么设置 2、js echarts圆环饼状图中怎样设置斜杠前后数据不一样的样式 3、怎么使用fushionchart制作动态饼状图 echart

2023-12-08
python饼状图代码,python做漂亮的饼状图

2022-11-24
python中画饼状图,python中画饼状图代码

2022-11-17
php饼图(php饼状图)

2022-11-08
python画饼状图,python做饼状图

2023-01-05
详解plt.pie:饼状图高级绘制

2023-05-19
使用Python绘制饼状图的实现方法

2023-05-10
饼图的一部分又做一个饼图

2023-05-19
Python饼状图详解

2023-05-21
js代码实现折线图,折线图的代码

本文目录一览: 1、如何用JavaScript获取WebViewString并用ECharts的库绘制折线图? 2、使用js绘图(折线图,柱状图,饼状图),若同时制作多张图,速度比较慢,如何解决 3、

2023-12-08
sketch怎么画环形饼状图,饼图加圆环图

2022-11-24
包含疫情饼状图python代码实现的词条

2022-11-13
Python饼状图分析

2023-05-10
python饼图,python饼图字体大小

2023-01-05
chartjs柱状图,chart控件柱状图

本文目录一览: 1、chart控件画柱状图怎么控制柱子的宽度 2、有哪些用 JavaScript 实现的图形库 3、chartJs柱状图下滑条怎么写 4、请问谁知道哪种js库提供自定义图例功能? ch

2023-12-08
sketch怎么加饼状图,sketch画饼状图

2022-11-27
用plt.pie画饼图

2023-05-10
双饼图制作详解

2023-05-18
Vue饼图相较于其他图表的优势

2023-05-21