`

java生成曲线图

 
阅读更多
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();
		}
	}

}

 

0
0
分享到:
评论

相关推荐

    Java生成曲线图

    Java生成曲线图是一种常见的数据可视化需求,特别是在数据分析、科学计算以及软件开发中。在这个场景下,JFreeChart 是一个强大的 Java 库,它为开发者提供了丰富的图表类型,包括曲线图,用于直观地展示数据趋势。...

    java Open Flash Chart2生成曲线图

    使用jOFC2生成曲线图的步骤大致如下: 1. **引入依赖**:将提供的jar包(可能在压缩包中的`lib`目录下)添加到你的项目类路径中。 2. **创建图表对象**:通过`OpenFlashChart`类实例化一个图表对象。 3. **添加数据...

    Java JFreeChart 后台生成折线图

    以上就是使用Java JFreeChart库在后台生成折线图的基本流程。饼图和柱状图的生成原理类似,只需替换相应的`ChartFactory`方法(如`createPieChart()`或`createBarChart()`),并调整数据集的结构以适应不同图表的...

    java导出excel并生成折线图.java

    资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。

    java使用POI插件绘制表格曲线图

    在“java使用POI插件绘制表格曲线图”这个主题中,我们将深入探讨如何使用POI来在Excel工作表中绘制曲线图表。Apache POI提供了一个API,使得开发者可以方便地创建图表,包括曲线图,而无需依赖其他外部插件。 首先...

    java jfreechart 生成图形报表 饼图,条形图,曲线图

    总结一下,Java JFreeChart 提供了丰富的功能,能够帮助开发者生成各种类型的图表,包括饼图、条形图和曲线图,以实现数据的可视化。通过使用不同的数据集和渲染器,你可以根据需求自定义图表的外观和行为。在给定的...

    java+jfreechart+struts 生成曲线图

    java+jfreechart+struts 生成曲线图 java+jfreechart+struts 生成曲线图 java jfreechart 曲线图 java jfreechart 曲线图 java jfreechart 曲线图 谁需要完整项目可以去http://download.csdn.net/source/2665347

    使用Java Graphics2D类生成心跳曲线坐标图

    使用Java Graphics2D类生成心跳曲线坐标图,一般用于在服务器端生成坐标对数据图片,示例可以参考这里:https://blog.csdn.net/youxijishu/article/details/124545372?spm=1001.2014.3001.5502

    Java曲线图.doc

    这段代码首先创建了一个`TimeSeries`对象,接着创建了一个`TimeSeriesCollection`,然后通过`ChartFactory.createTimeSeriesChart()`方法生成曲线图。最后,将图表输出为PNG图像并响应给浏览器。 需要注意的是,...

    html生成曲线图

    通过页面实现简单的曲线图,直观的了解数据的波动。

    java中关于JFreeChart实现实时曲线图

    在Java编程语言中,利用JFreeChart库实现实时曲线图是一种常见的数据可视化技术,尤其适用于需要实时监控或展示数据变化的应用场景。JFreeChart是一个开源的Java图表库,提供了丰富的图表类型和自定义选项,使得...

    JFreeChart画曲线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括曲线图、柱状图、饼图、散点图等。在本示例中,我们将重点关注如何使用JFreeChart绘制曲线图,以及如何在数据点上显示具体的数据值。 ...

    jfreechart各类曲线图JSP代码

    JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...

    Jmeter性能测试报告之曲线图展示

    本文档详细介绍了如何通过JMeter生成性能测试报告,并特别关注了如何通过曲线图来直观展示测试结果。这不仅包括了技术准备步骤,还涉及了具体的配置过程。 #### 技术准备 在进行性能测试之前,确保以下环境设置...

    生成气象信息的曲线图

    现在,让我们深入探讨如何使用Java和JFreeChart库来生成气象信息的曲线图。 1. **JFreeChart介绍**:JFreeChart是Java的一个开源库,用于生成各种类型的图表,包括折线图、柱状图、饼图等。它提供了一套丰富的API,...

    java的poi生成excel图表demo

    通过这个“java的poi生成excel图表demo”,我们可以学习如何利用POI创建动态的、数据驱动的Excel曲线图,进一步提升数据的可视性和理解性。这个压缩包中的“EexcelChart”可能是示例代码、测试数据或生成的Excel文件...

    java生成图形报表组件

    Java生成图形报表组件是一种强大的工具,它主要用于在Java应用程序中创建和展示各种类型的图表,如曲线图、饼状图、柱状图以及时序图。这个组件通常包含一系列的类和方法,允许开发者通过编程方式定义数据源、样式和...

    用java实现word统计报表和图形统计的导出

    在Java中,JFreeChart是一个强大的开源库,用于生成各种类型的图表,如折线图、柱状图、饼图等。我们可以使用它来根据数据生成统计图形,然后将其嵌入到Word文档中。首先,我们需要创建一个JFreeChart对象,配置其...

Global site tag (gtag.js) - Google Analytics