使用java生成折线图_Java折线图简单绘制
先不搞复杂的,就来一个最简单的功能吧!
所需实现的功能:给出一个数组,以自然数序列为横坐标,数组元素值为纵坐标,画出其折线图。
注意:只是折线图,不添加其他坐标轴标签和标题、网格等等。其实只是画折线罢了
了解Swing编程的都知道,应该是画在JPanel里面了,那么图形绘制功能由awt包的Graphics类提供,绘制函数需要JFrame对象去重写函数public void paint(Graphics g)
关键点在于计算出每一个点的坐标值,学过数值分析或者计算机图形学光栅扫描的都知道,给定第一个点,后面的点都用增量法求出即可。(日后添上证明过程)
有了以上的铺垫,就很容易写出了。主函数来生成一个随机的序列,进行绘制测试
package plotUtils;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JFrame;
public class ResultPlot extends JFrame{
private double[] y;
private int figureHeight = 600;
/**
*
*/
private static final long serialVersionUID = 1L;
public ResultPlot(double[] y){
super();
this.y = y;
setTitle("Line Draw");
setBounds(2, 100, 1500, figureHeight);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
g.setColor(Color.red);
int biasX = 15;
int h = 2;
int biasY = 100;
g.drawLine(biasX, this.figureHeight-biasY, biasX+h*(y.length), this.figureHeight-biasY);
g.drawLine(biasX,figureHeight-((int)y[0]+biasY), biasX+h, figureHeight-((int)y[1]+biasY));
int x1,y1, x2, y2;
for (int i = 1; i < y.length-1; i++) {
x1 = biasX+h*i; y1 = figureHeight-((int)y[i]+biasY);
x2=biasX+h*(i+1); y2=figureHeight-((int)y[i+1]+biasY);
g.drawLine(x1, y1, x2, y2);
}
g.drawString("("+h*(y.length-1)+","+(int)y[y.length-1]+")", biasX+h*(y.length-1), this.figureHeight-((int)y[y.length-1]+biasY));
}
public static void main(String[] args) {
double[] y = new double[700];
Random rand = new Random();
for (int i = 0; i < y.length; i++) {
y[i] = rand.nextInt(200);
}
ResultPlot rp = new ResultPlot(y);
}
}
效果如下,画了700个点,效果还是很令人满意的,毕竟需要的功能已经实现了,不过还是绘制的过程挺花时间的。
显然,只要传入一个数组,就可以画出折线了,封装的还是不错的,就是功能不够多,样式不够好看。日后再添
标签:Java,figureHeight,int,biasX,length,折线图,biasY,绘制,public
来源: https://www.cnblogs.com/zhaoke271828/p/13960773.html
使用java生成折线图_Java折线图简单绘制相关推荐
- java生成验证码实例_Java生成验证码功能实例代码
页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...
- java生成小图片_JAVA生成缩略小图片类
JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...
- java 生成csv文件_Java生成CSV文件实例详解
本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...
- java生成随机时间_Java生成某段时间内的随机时间
上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 生成随机时间 ...
- java生成随机数组_JAVA生成随机数组10个数字并求和
JAVA生成随机数组10个数字并求和 本文最终结果大概是这样的',使用java技术随机生成10个数,然后填充一个数组并在消息框中显示数组内容,接着对数组求和输出,将结果显示在消息框中. 设计思路:可以 ...
- java生成字符串数组_Java 生成随机字符串数组的实例详解
Java 生成随机字符串数组的实例详解 利用Collections.sort()方法对泛型为String的List 进行排序.具体要求: 1.创建完List之后,往其中添加十条随机字符串 2.每条字符 ...
- JAVA生成json效率_java序列化和json序列化效率对比
一.背景 有项目需要传输Map结构的数据,有人倾向用Java序列化来做,有人倾向用JSON的序列化来做.所以我们还是比比吧. Java观点:Object2Object,使用时简单快速. JSON观点: ...
- java点名代码滚动_JAVA多线程实现简单的点名系统
效果图如下: CMain函数: package com.shubing.main; public class CMain { public static void main(String[] args ...
- java 折线图_java折线图的数据写入方法
/** * 折线图的数据写入方法 * @param slide ppt图表 * @param index 折线图的下标 * @param data 需要填充的数据 * @param titles 内嵌 ...
- java 生成纯色图片_java实现切图并且判断图片是不是纯色/彩色图片
java实现切图并且判断图片是不是纯色/彩色图片 发布时间:2020-08-30 15:45:30 来源:脚本之家 阅读:92 作者:点墨花花 整理文档,搜刮出一个java实现切图并且判断图片是否是纯 ...
最新文章
- 阿里云linux下修改mysql默认密码(xampp环境)- 原创
- 多线程的实现方式_Java中线程的状态及多线程的实现方式
- QT的QVideoProbe类的使用
- 如何恢复ORACLE数据(冷备份)
- kubernetes1.8.4安装指南 -- 2. ssh免密登录
- python探测端口_python检测远程服务器tcp端口的方法
- SSH(Spring+Struts2+Hibernate)框架搭建步骤(含配置文件以及运行结果)
- 【资源下载】 UC 伯克利 Chelsea Finn 博士论文(新起之秀——MAML)《Learning to Learn with Gradients》下载--2018ACM最佳博士论文下载
- 数据结构-------赫夫曼树
- stm32cubeIDE下载无法打开GDB的问题
- 关于Matlab取整函数round的用法
- P3717 cover
- Xilinx XC7Z020双核ARM+FPGA开发板试用合集——硬件赏析
- 自从看了<<麦肯锡的领导力法则>>之后......
- 海尔全球十一连冠背后: 生态时代的无限游戏
- android 信号研究(包括信号图标和信号优化)
- MATLAB画阶梯图
- pythonl list去子集
- AWS S3 in china 地址
- stm32f103停止模式低功耗设置(最低5.7ua)
热门文章
- 计算机开机只显示,电脑开机黑屏只显示光标怎么办?来看看几种原因分析及解决方法!...
- mysql强行关闭回滚中的进程_mysql查询正在执行的进程
- 南京IT行业企业比较
- 微信小程序长列表优化方案
- php论坛整合,phpcms+ucenter+discuz论坛整合教程
- 论文阅读:SCAFFOLD: Stochastic Controlled Averaging for On-Device Federated Learning
- illumina 肿瘤分析流程
- 用母函数(生成函数)求解整数拆分问题
- 什么是视频编码 编解码技术及压缩技术
- 不要悲观!勇敢面对逆境