利用 Java 2D 畫曲線圖

jopen 12年前發布 | 41K 次閱讀 Java 2D Java開發

<%@ page language="java" contentType="image/jpeg;charset=GBK"
 import="java.awt., java.awt.image., com.sun.image.codec.jpeg.*"%>
<%
 // 在內存中創建圖像
 int width  = 600;
 int height = 500;
 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 繪制圖像 Graphics g = image.getGraphics(); Graphics2D g2d = (Graphics2D) g; // 背景色 g.setColor(new Color(240, 249, 255));

g.fillRect(0, 0, width, height); // 字體顏色 g.setColor(Color.BLACK); g.setFont(new Font("宋體", Font.PLAIN, 22)); g.drawString("新浪網2007年上半年訪問量統計", 15, 25); int visit[] = new int[6]; for (int i = 0; i < visit.length; i++) { visit[i] = 1 + (int) (Math.random() * 100); }

String mongth[] = { "1月", "2月", "3月", "4月", "5月", "6月" };

g.setFont(new Font("宋體", Font.BOLD, 16)); g.drawString("訪問量(單位:萬次)", 20, 50); g.drawString("月份", 550, 465); g.setFont(new Font("SanSSerif", Font.PLAIN, 12));

int visitValue = 0; //畫橫線 for (int i = 418; i > 0; i -= 38) { g.setColor(Color.BLACK); g.drawString("" + visitValue, 36, (i + 27)); g.setColor(Color.LIGHT_GRAY); g.drawLine(80, (i + 27), 520, (i + 27)); visitValue += 10; } g.setColor(Color.BLACK); g.drawLine(80, 40, 80, 445); g.drawLine(80, 445, 550, 445); int drawHigh[] = new int[mongth.length]; int drawwidth[] = new int[mongth.length];

//折點坐標 for (int i = 0; i < mongth.length; i++) { drawHigh[i] = 445 - (int) (Math.ceil(visit[i] 3.8)); drawwidth[i] = 110 + i 80; g.drawString(mongth[i], 110 + i * 80, 465); }

//g2d.setXORMode(Color.WHITE); //折線粗細 g2d.setStroke(new BasicStroke(3.0f)); //折線的顏色 g2d.setPaint(Color.RED); //畫折線 g2d.drawPolyline(drawwidth, drawHigh, mongth.length); // 產生圖像 g.dispose();

ServletOutputStream sos = response.getOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos); encoder.encode(image);

out.clear(); out = pageContext.pushBody(); %></pre>

java畫曲線圖

轉自:http://www.cnblogs.com/190196539/archive/2011/12/21/2295358.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!