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 是一个强大的 Java 库,它为开发者提供了丰富的图表类型,包括曲线图,用于直观地展示数据趋势。...
使用jOFC2生成曲线图的步骤大致如下: 1. **引入依赖**:将提供的jar包(可能在压缩包中的`lib`目录下)添加到你的项目类路径中。 2. **创建图表对象**:通过`OpenFlashChart`类实例化一个图表对象。 3. **添加数据...
以上就是使用Java JFreeChart库在后台生成折线图的基本流程。饼图和柱状图的生成原理类似,只需替换相应的`ChartFactory`方法(如`createPieChart()`或`createBarChart()`),并调整数据集的结构以适应不同图表的...
资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。
总结一下,Java JFreeChart 提供了丰富的功能,能够帮助开发者生成各种类型的图表,包括饼图、条形图和曲线图,以实现数据的可视化。通过使用不同的数据集和渲染器,你可以根据需求自定义图表的外观和行为。在给定的...
在“java使用POI插件绘制表格曲线图”这个主题中,我们将深入探讨如何使用POI来在Excel工作表中绘制曲线图表。Apache POI提供了一个API,使得开发者可以方便地创建图表,包括曲线图,而无需依赖其他外部插件。 首先...
java+jfreechart+struts 生成曲线图 java+jfreechart+struts 生成曲线图 java jfreechart 曲线图 java jfreechart 曲线图 java jfreechart 曲线图 谁需要完整项目可以去http://download.csdn.net/source/2665347
使用Java Graphics2D类生成心跳曲线坐标图,一般用于在服务器端生成坐标对数据图片,示例可以参考这里:https://blog.csdn.net/youxijishu/article/details/124545372?spm=1001.2014.3001.5502
在Java编程语言中,利用JFreeChart库实现实时曲线图是一种常见的数据可视化技术,尤其适用于需要实时监控或展示数据变化的应用场景。JFreeChart是一个开源的Java图表库,提供了丰富的图表类型和自定义选项,使得...
这段代码首先创建了一个`TimeSeries`对象,接着创建了一个`TimeSeriesCollection`,然后通过`ChartFactory.createTimeSeriesChart()`方法生成曲线图。最后,将图表输出为PNG图像并响应给浏览器。 需要注意的是,...
Java数据生成统计图表程序是一种利用Java编程语言来创建可视化数据表示的方法,特别是在处理温度等科学或工程数据时非常有用。这个程序可能包含了对输入数据进行分析、处理和展示的完整流程,通过Java的数据结构和...
通过页面实现简单的曲线图,直观的了解数据的波动。
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括曲线图、柱状图、饼图、散点图等。在本示例中,我们将重点关注如何使用JFreeChart绘制曲线图,以及如何在数据点上显示具体的数据值。 ...
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
本文档详细介绍了如何通过JMeter生成性能测试报告,并特别关注了如何通过曲线图来直观展示测试结果。这不仅包括了技术准备步骤,还涉及了具体的配置过程。 #### 技术准备 在进行性能测试之前,确保以下环境设置...
现在,让我们深入探讨如何使用Java和JFreeChart库来生成气象信息的曲线图。 1. **JFreeChart介绍**:JFreeChart是Java的一个开源库,用于生成各种类型的图表,包括折线图、柱状图、饼图等。它提供了一套丰富的API,...
通过这个“java的poi生成excel图表demo”,我们可以学习如何利用POI创建动态的、数据驱动的Excel曲线图,进一步提升数据的可视性和理解性。这个压缩包中的“EexcelChart”可能是示例代码、测试数据或生成的Excel文件...
在Java编程环境中,实现动态波形曲线显示是一项技术挑战,主要涉及到图形用户界面(GUI)设计、数据处理以及实时更新。下面将详细讲解这个过程涉及的关键知识点。 首先,我们需要一个图形用户界面来显示波形曲线。...