package com.test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Polygon; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; /** * 绘制曲线图 * @author wzztestin * */ public class CreateQxImage { private static Font mFont = new Font("宋体", Font.BOLD, 12); public static void main(String[] args) { double[] value = { 18.57d, 2.25d, 10.83d, 16.38d, 14.35d }; createimage(value, 18.57d); } /** * 绘制图生片 * @param value * @param maxvalue */ private static void createimage(double[] value, double maxvalue) { try { int width = 764, height = 168; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // 绘制图像 Graphics g = image.getGraphics(); // 背景色 g.setColor(new Color(255, 255,255)); g.fillRect(1, 1, width - 1, height - 1); g.setColor(new Color(255, 255,255)); g.drawRect(0, 0, width - 1, height - 1); //初始化下部默认部分 g.setColor(new Color(227, 227, 227)); g.fillRect(0, 108, width, 60); g.drawRect(0, 108, width, 60); int y = 108; //保存y轴数据高度的数组 int[] tempy = new int[5]; int temp_y = 0; //开始绘图 for(int i = 0;i<= value.length;i++){ if(i < value.length){ temp_y = y-(int)Math.round(60*(value[i]/maxvalue)); tempy[i] = temp_y; } Polygon filledPolygon=new Polygon(); if(i == 0){ filledPolygon.addPoint(0,y); filledPolygon.addPoint(68,y); filledPolygon.addPoint(68,temp_y); g.setColor(new Color(227, 227, 227)); g.fillPolygon(filledPolygon); g.drawPolygon(filledPolygon); }else if(i > 0 && i < value.length){ filledPolygon.addPoint(i*136-68,tempy[i-1]); filledPolygon.addPoint(i*136-68,y); filledPolygon.addPoint((i+1)*136-68,y); filledPolygon.addPoint((i+1)*136-68,temp_y); g.setColor(new Color(227, 227, 227)); g.fillPolygon(filledPolygon); g.drawPolygon(filledPolygon); }else{ filledPolygon.addPoint(i*136-68,tempy[i-1]); filledPolygon.addPoint(i*136-68,y); filledPolygon.addPoint(width,y); g.setColor(new Color(227, 227, 227)); g.fillPolygon(filledPolygon); g.drawPolygon(filledPolygon); } } //在图上加上图标 for(int j = 0;j<value.length;j++){ BufferedImage img = ImageIO.read(new File("d:\\1.png")); g.drawImage(img, (j+1)*136-76,tempy[j]-8, 16, 16, null); } //在图标上部写字 Color c = new Color(181, 181, 181); for(int j = 0;j<value.length;j++){ g.setColor(c); g.setFont(mFont); g.drawString(value[j]+"MB", (j+1)*136-92,tempy[j]-16); } g.dispose(); // 产生图像 String filename = "d:\\createqximg.jpg"; File file = new File(filename); if (!file.exists()) { file.createNewFile(); } FileOutputStream s = new FileOutputStream(file); ImageIO.write(image, "JPEG", s); } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
Java 曲线图 jfreechart。 含jar包,直接运行,注释全。
jofc2(open flash chart2 - java)生成的曲线图,附带jar包,导入项目即可显示
Java语言纯后台生成折线图,饼图,柱状图。
资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。
java+jfreechart+struts 生成曲线图 java+jfreechart+struts 生成曲线图 java jfreechart 曲线图 java jfreechart 曲线图 java jfreechart 曲线图 谁需要完整项目可以去http://download.csdn.net/source/2665347
此demo不需要借助其他插件,只需要加入poi相关的jar即可生成excel表格数据曲线,附件是源码
大家好:附件中是myeclipse工程,直接引入myeclipse就可以运行在浏览器看到效果了。谢谢。
使用Java Graphics2D类生成心跳曲线坐标图,一般用于在服务器端生成坐标对数据图片,示例可以参考这里:https://blog.csdn.net/youxijishu/article/details/124545372?spm=1001.2014.3001.5502
通过页面实现简单的曲线图,直观的了解数据的波动。
java中关于JFreeChart实现实时曲线图
java生成曲线图,用于证卷系统的交易变化
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
JFreeChart的简单应用,画曲线图,多条曲线,在数据点显示数据值。包含所需的jar文件。
自己写的java生成饼图、柱状图和曲线图等...
1.java使用poi生成excel插入图表曲线 2.demo包含完成jar包 3.主要用途是过滤数据自动生成曲线图
java实现动态波形曲线,附java运行程序,采集代码
很好用的图形报表工具,有详细的帮助文档及实例,能生成曲线图、饼状图、柱状图、时序图,杜绝(鄙视)劣质代码,只提供优质代码!
JDBC实现MySQL中的数据上传到前端,经Echarts折线图展示出来。