package cn.myframe.chart;
import cn.myframe.entity.Operation;
import cn.myframe.entity.PTempDetailInfo;
import cn.myframe.entity.PTempInfo;
import cn.myframe.util.DateUtil;
import cn.myframe.util.NumberUtil;
import cn.myframe.util.TwdConstant;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.awt.*;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class TwdChartService
{
private int top_length = 3; // 顶端的高度
private int top_rows = 10; // 顶部的行数
private double top_row_height = top_length / (double) top_rows; // 顶部每行的高度
private int bottom_length = 3; // 底部的高度
private int bottom_rows = 10;// 底部的行数
private double bottom_row_height = bottom_length / (double) bottom_rows; // 底部每行的高度
private int grid_left = 6; // 左Y轴格子数
private int grid_right = 0; // 右Y轴格子数
private int x_unit = 6; // 多少个小格子组成一个大格子
private double grid_row_height = 0.2; // 数据区每个格子的高度
private double grid_col_width = 1.0;
private int y_grid_length = 8; // y轴所有格子的长度
private int x_grid_length = 42; // x轴所有格子的长度
private int grid_rows = (int) Math.round(y_grid_length / grid_row_height); // 中间格子的行数
private int start_temperature = 34; // 起始的体温 从底部高度开始算起
private int start_pulse = 20; // 起始的脉搏 从底部高度开始算起
private int x_length = grid_left + x_grid_length + grid_right; // x轴的长度
private int y_length = top_length + y_grid_length + bottom_length; // y轴的长度
Font font = new Font("SansSerif", Font.PLAIN, 12);
private double round_size = 8d;
public void initAllData(ChartProcessor chart, Map map)
{
initTopChart(chart, map);
initGridChart(chart);
initBottomChart(chart, map);
initGridDynamicData(chart, map);
initChart(chart);
}
/**
* 初始化坐标轴、边框
*
* @param chart
*/
private void initChart(ChartProcessor chart)
{
// 初始化各坐标轴
chart.setXRange(0, x_length);
chart.setXUnit(1);
chart.setXVisible(false);
chart.setBgHorizontalLineColor(Color.white);
chart.setBgVerticalLineColor(Color.white);
chart.setYUnit(ChartProcessor.AXIS_LEFT, 1);
chart.setYRange(ChartProcessor.AXIS_LEFT, 0, y_length);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_left", 0, y_length);
chart.setLineVisible(ChartProcessor.AXIS_LEFT, "basic_left", false);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_left", false);
chart.setYVisible(ChartProcessor.AXIS_LEFT, false);
// 四条边框
// 上
chart.addData(ChartProcessor.AXIS_LEFT, "basic_frame_line_top", 0, y_length);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_frame_line_top", x_length, y_length);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_frame_line_top", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "basic_frame_line_top", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "basic_frame_line_top", ChartShape.LINE_WIDE);
// 住院天数
chart
.addData(ChartProcessor.AXIS_LEFT, "basic_line_top", 0, bottom_length + y_grid_length + top_row_height
* 5);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_line_top", x_length, bottom_length + y_grid_length
+ top_row_height * 5);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_line_top", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "basic_line_top", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "basic_line_top", ChartShape.LINE_NORMAL);
// 下
chart.addData(ChartProcessor.AXIS_LEFT, "basic_frame_line_bottom", 0, 0.01);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_frame_line_bottom", x_length, 0.01);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_frame_line_bottom", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "basic_frame_line_bottom", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "basic_frame_line_bottom", ChartShape.LINE_NORMAL);
// 左
chart.addData(ChartProcessor.AXIS_LEFT, "basic_y_line", 0, 0);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_y_line", 0, y_length);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_y_line", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "basic_y_line", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "basic_y_line", ChartShape.LINE_WIDE);
// 左2
chart.addData(ChartProcessor.AXIS_LEFT, "basic_y_line_sec", grid_left, 0);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_y_line_sec", grid_left, y_length - top_row_height * 5);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_y_line_sec", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "basic_y_line_sec", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "basic_y_line_sec", ChartShape.LINE_NORMAL);
// 右
chart.addData(ChartProcessor.AXIS_LEFT, "basic_y_line_right2", x_length - 0.0005, 0);
chart.addData(ChartProcessor.AXIS_LEFT, "basic_y_line_right2", x_length - 0.0005, y_length);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "basic_y_line_right2", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "basic_y_line_right2", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "basic_y_line_right2", ChartShape.LINE_NORMAL);
// 呼吸
chart.addData(ChartProcessor.AXIS_LEFT, "bottom_horizatal_line", 0, bottom_length);
chart.addData(ChartProcessor.AXIS_LEFT, "bottom_horizatal_line", x_length - grid_right, bottom_length);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "bottom_horizatal_line", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "bottom_horizatal_line", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "bottom_horizatal_line", ChartShape.LINE_NORMAL);
// 时间边框
chart.addData(ChartProcessor.AXIS_LEFT, "top_horizatal_line", 0, y_length - top_length);
chart.addData(ChartProcessor.AXIS_LEFT, "top_horizatal_line", x_length - grid_right, y_length - top_length);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, "top_horizatal_line", false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, "top_horizatal_line", Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, "top_horizatal_line", ChartShape.LINE_NORMAL);
// 初始化脉搏、体温坐标轴
for (int i = 0; i < y_grid_length; i++)
{
Font font = new Font("SansSerif", Font.PLAIN, 12);
String value_left = (start_temperature + i + 1) + "";
String value_left_sec = (start_pulse + (i + 1) * 20) + "";
double y = bottom_length + i + 0.8;
chart.addBackgroundValue(value_left, grid_left / 6 * 5, y, font);
chart.addBackgroundValue(value_left_sec, grid_left / 4 + 0.05, y, font, Color.RED);
}
// 时间 至 顶部 添加纵线 呼吸 至 底部 添加纵线
// 纵向格子
for (int i = 0; i <= x_grid_length; i++)
{
float chartShape = ChartShape.LINE_THIN;
double temp_top_height = y_length - top_length + top_row_height * 2;
double temp_bottom_height = bottom_length - bottom_row_height * 2;
if (i % 6 == 0)
{
chartShape = ChartShape.LINE_WIDE;
temp_top_height = y_length - top_length + top_row_height * 5;
temp_bottom_height = 0;
}
String line_name = "line_time2top_vertical_sec_" + i;
chart.addData(ChartProcessor.AXIS_LEFT, line_name, grid_left + i, y_length - top_length);
chart.addData(ChartProcessor.AXIS_LEFT, line_name, grid_left + i, temp_top_height);
chart.setLineShapeVisible(ChartProcessor.AXIS_LEFT, line_name, false);
chart.setLineColor(ChartProcessor.AXIS_LEFT, line_name, Color.BLACK);
chart.setLineWidth(ChartProcessor.AXIS_LEFT, line_name, chartShape);
String line_name1 = "line_breather2bottom_vertical_sec_" + i;
chart.addData(ChartProcessor.AXIS_LEFT, line_name1, grid_left + i, bottom_length);
chart.addData(ChartProcessor.AXIS_LEFT, line_nam
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于springboot2开发教程,目标:收集网上的springboot博文,码出一系列最详尽的开源项目。个人准备开源的快速开发框架(实现小程序商城)。基于springboot2+mybatis plus+shiro+redis+jwt+vue2+bootstrap3+mysql实现,功能包括:前后端分离。安全认证 权限管理。代码生成器。selenium实现自动化测试
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot2开发教程,收集网上的springboot博文,开源的快速开发框架(实现小程序商城) (969个子文件)
ThreadStatus.class 2KB
D5.class 424B
site.css 484KB
site.css 484KB
bootstrap.css 176KB
bootstrap.css 176KB
xterm.css 34KB
web-icons.css 6KB
web-icons.css 6KB
login.css 2KB
login.css 2KB
hadoop.dll 95KB
chromedriver.exe 8.19MB
chromedriver.exe 8.19MB
.gitignore 165B
baselog.log.2019-04-16.0.gz 3KB
report.html 20KB
login.html 7KB
login.html 7KB
socket.html 3KB
socket.html 3KB
console.html 2KB
ws.html 2KB
list.html 1KB
index.html 1KB
index.html 1KB
footer.html 757B
downLoad.html 626B
cors.html 626B
cors.html 626B
login.html 589B
alert.html 578B
error.html 515B
header.html 515B
error.html 446B
MailTemplate.html 310B
detail.html 307B
index.html 294B
index.html 195B
error2.html 170B
login.html 131B
login.html 131B
login.html 128B
login.html 128B
resources.html 125B
login.html 125B
login.html 125B
resources.html 125B
login.html 121B
home.html 120B
home.html 120B
favicon.ico 9KB
favicon.ico 9KB
TwdChartService.java 42KB
ChartProcessor.java 18KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
NameBuildUtils.java 16KB
VirtualIP.java 15KB
SpiderCsdn.java 14KB
ZkClient.java 12KB
ZookeeperController.java 11KB
SparkKafkaUtil.java 10KB
DateUtil.java 10KB
SparkTest.java 10KB
ExtentTestNGIReporterListener.java 9KB
ClassLoaderUtil.java 8KB
HbaseUtil.java 8KB
CommentMachine.java 8KB
PageUtils.java 8KB
ProxyConfig.java 8KB
HdfsUtils.java 8KB
SpiderDemo.java 8KB
ClientChannelHandler.java 8KB
HttpServerHandler.java 8KB
YingHuoDemo.java 8KB
WebMvcConfig.java 7KB
JsoupCsdn.java 7KB
ServerChannelHandler.java 7KB
PrividerRabbitmqConfig.java 7KB
ErrorInfoBuilder.java 7KB
DataSetUtil.java 6KB
FileServerHandler.java 6KB
SnowflakeUtils.java 6KB
ClassReader.java 6KB
ProxyChannelManager.java 6KB
TailFileSource.java 6KB
PTempInfo.java 6KB
Operation.java 6KB
RestTemplateController.java 6KB
UserChannelHandler.java 6KB
共 969 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6651
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功