用TWaver实现组合的Chart

TWaver组件中提供了一些通用的Chart,比如Line Chart,Bar Chart,Bubble Chart,Percent Chart等,对于一些复杂的Chart我们也可以通过定制的方式来实现,如前面所给出的用swing制作精美ERP图表,仔细看来这些Chart都是单个图,有客户要实现多个Chart的整合,比如Line Chart和Bar Chart组合显示,这改如何来实现?通常我们想到的方式是通过叠加来显示,将TWaver的这两个组件叠加起来,但这会带来很多不必要的麻烦,下面我们通过定制Chart的方式来实现,先看看最终的实现效果:

这个图展示的是2012年下半年的降雨量和温度走势,这就是一个很简单的Line Chart和Bar Chart叠加的图,这里采取的实现方式是定制Chart,首先创建一个类继承于Bar Chart,在Bar Chart上draw出Line Chart,主要的实现代码也就是在PaintChart里,我们来看看具体的代码实现:

 

public void paintChart(Graphics2D g2d, int width, int height) {
	super.paintChart(g2d, width, height);
	Rectangle rect = this.getBackgroundBounds();
	double xScaleGap = rect.getWidth()/(xScaleCount*2+1);
	double yPixelGap = this.toValidHeight(rect.getHeight())/ this.lineRange;
	for(int i = 0; i< lineDatas.size(); i++){
		Data data = (Data)lineDatas.get(i);
		paintData(g2d,data,rect,xScaleGap,yPixelGap);
	}
}

 

private void paintData(Graphics2D g2d,Data data,Rectangle rect,double xScaleGap, double yPixelGap){
		List dataValues = data.getValues();
		Point2D lastPoint = null;
		Point2D currentPoint = null;
		g2d.setColor(data.getColor());
		g2d.setStroke(new BasicStroke(data.getLineWidth()));
		if(dataValues != null && dataValues.size() >0){
			for(int i=0 ;i < xScaleCount; i++){
				double value = ((Double) dataValues.get(i)).doubleValue();
				double x = rect.getX() - this.shadowOffset + xScaleGap * (2*(i+1)-0.5);
				double y = rect.getY() + this.toValidHeight(rect.height) - value*yPixelGap;
				currentPoint = new Point2D.Double(x,y);
				if(lastPoint != null){
					Line2D line = new Line2D.Double(lastPoint,currentPoint);
					g2d.draw(line);
				}
				Shape shape = new Rectangle2D.Double(x-2, y-2,4,4);
				g2d.fill(shape);
				g2d.drawString(formatLineValue(value), ((Double)x).floatValue(), ((Double)y).floatValue());
				lastPoint = currentPoint;
			}
		}
	}

 

paint方法中主要是通过获取Bar Chart的背景大小,来计算出x轴刻度的间隙和Y轴像素的间隙,这样在绘制Line Chart上每个值的具体坐标时就比较容易了。其中我们还定义了Data这样一个实体bean,用于存放line chart上显示的数值,主要给出了line chart每条线的颜色和粗细以及具体的值这些参数,我们可以根据实际需求加上自己所需的参数,比如是否显示lineChart上的值,值的颜色,字体,大小,当然还可以实现双Y坐标轴,在右方draw出lineChart的坐标轴等。

 

最后给出上图实现效果的具体代码:

lineAndBarChart

 

 

 

被忽视的TWaver功能(1) 应客户需求写个Demo,Demo中包含一些常用的功能,包括解析JSON数据生成TWaver中的网元和连线,网元右下角带上不同标识的小图标,连线需要是二次曲线,弹出菜单和信息板,跟大家分享下。 阅读详情

相关推荐

TWaver“一站式”UI组件提供包括网络拓扑图、地图、设备面板图、流程图、各种Chart图表、树图、表格等各种通用组件

TWaver HTML5(以下简称TWaver)使用HTML5技术和javascript语言,可在支持HTML5的浏览器上进行绘图。 使用TWaver前,需熟悉几个基本概念:图元(Element)、容器(DataBox)和画布(Network)。 图元:图形中的各种基本元素,如节点(Node)、连线(Link)等; 容器:图元都统一放置在一个容器(DataBox)中进行管理,如同“装鸡蛋的篮子”一样。它负责图元的增/删/改/查等管理操作; 画布:图元最终都绘制在画布(Network)组件上。Network是最终用户看到的图形组件,负责图形画面的具体绘制和交互;

twaver API笔记

twaver.Alarm : 告警对象存储, 在告警容器中,告警容器是网元的一部分,用于管理告警对象,每一个告警都可以设置关联网元Id twaver.AlarmBox: 告警容器对象,告警存在网元容器中,作为网元容器的一部分,管理网元容器中所有告警对象 twaver.AlarmElementMapping:告警网元映射对象,定义网元映射关系,一般告警和网元是一对一关系,需要达到一...

weixin_30955617的博客 906

基于TWaver实现的3D机房Demo

TWaver是基于WebGL3D一个框架,可以使用其框架进行web3d的开发,这里贴上官方的一个小案例,可以参照使用。

Twaver-HTML5基础学习(17)子网(SubNetwork)

Twaver-HTML5基础学习(17)子网(SubNetwork)

见贤思齐焉,见不贤内自省 588

twaver java 4.5.0

TWaver-java的库TWaver.jar

EChartsX是ECharts团队推出的全新3D可视化库

ECharts-X是ECharts团队推出的全新 3D 可视化库,它是基于 ECharts 的扩展,底层深度整合了 WebGL 库QTEK和 Canvas2D 库ZRender。

认识TWaver

一、    概念介绍         TWaver是美国Serva Software公司的产品,是应用最为广泛的电信专业图形界面开发工具包,在电信行业应用非常广泛。TWaver关注于数据的图形展示,它是面向开发人员的,需要进行二次开发。         TWaver的图形组件库中提供了拓扑组件、地图组件、设备图组件,以及表格、树图、属性表、图表等丰富的通用图形界面组件,为电信运营支撑系统(OS

黄爱岗廊坊师范学院信息技术提高班 第七期 2234

twaverJavaAPI

twaver Java的API使用说明,非常全。包括jar包都在

用TWaver Java制作精美的图层叠加图

在TWaver的各个使用手册,文档和Demo中我们可以看到,TWaver提供了Layer的概念,就是图层,这与一些制图软件也有几分相似。在实际应用中也是比较的多。比如TWaver的Demo中有TWaver水印的字样,就是通过使用的TWaver层,将带有水印文字的图层自于最上方并不可选中。 下面我们再通过一个实际的例子具体来看看TWaver Layer的叠加效果,先上最终效果图: 这是一个使

徐来的专栏 1348

twaver-api

twaver4.3.6版本的api,可以本地阅读,不需要去官网上看了,方便点。

解决WSL2网络隔离:Ubuntu子系统共享Windows代理的3种方法

本文详细解析了WSL2的网络隔离特性,并提供了三种在Ubuntu子系统中共享Windows代理的实用方法:环境变量法、配置文件法和系统服务法。通过具体代码示例和方案对比,帮助开发者快速解决WSL2网络访问问题,实现一键设置代理,提升开发效率。

weixin_29295541的博客 450

常用可视化图形介绍

Fusionchart图形 zome Line chart使用滚动条和zoom显示大量数据:Zoom: 实现对某一段的放大,pin: 拖动滚动条时,该段在屏幕上,用于和其他段的比较 column 3D 真正的可交互的3d图形 Combination Single Y或者Dual Y. 实现X轴相同Y相同或不同内容的关联组合。 horizontal bar chart用于显示 x轴标签比较长的; plot chart用于表示落在某个区域的数目(如连接数),可以用颜色和形状表示(x,y,m,n)四元组

dananhai381的专栏 7226

高能物理相关软件

国内高能物理实验背景     研究物质最深层次结构及相互作用的前沿基础科学。 现代高能物理实验的要素    实例源 、 探测器、   电子学、  触发 DAQ、  原始数据、 刻度、重建 、物理分析、  成果  。 离线软件的地位和作用。    是硬件设备和物理学家的桥梁,是从数据到物理成果转化中的关键和重要的环节。 高能物理实验及其特点 独一无二性,实验规模越来越大,努力省钱(使用

Alan Zhuang的博客 3299

java twaver_《TWaver Java开发手册》.pdf

《TWaver Java开发手册》.pdfTWaver® Java开发手册Version 3.7Dec 2010Serva Softwareinfo@PO Box 8143, Wichita Falls, Texas, USA 76307For more information about Serva Software and TWaver please visit the web site a...

weixin_33445930的博客 356

Ubuntu终端接入Codex:一行脚本搞定AI编程助手安装与配置

在开发者日常工作中,命令行终端是最高频的操作环境,而AI编程助手的出现正在改变传统的编码方式。通过将大模型能力与终端工具链结合,开发者无需切换窗口即可完成命令查询、代码生成、项目理解和自动执行等任务。Ubuntu作为服务器和开发机的主流系统,搭配Node.js生态和API Key认证,即可在本地闭环运行AI助手。本文从环境准备、密钥配置、权限管理到自动化脚本封装,系统拆解在终端中接入Codex的完整流程,并分享高频用法与实测排障经验,帮助开发者安全、高效地让AI融入命令行工作流。

weixin_29061041的博客 322

Tecplot进阶:巧用公式与多Frame对比,实现CFD多工况数据差异的可视化分析

本文详细介绍了如何利用Tecplot进行CFD多工况数据差异的可视化分析,通过公式计算和多Frame对比,实现变量差值自动计算、多视图同步展示和差异量化统计。文章还提供了数据准备、基础操作、实战技巧和常见问题解决方案,帮助工程师高效完成CFD后处理工作。

weixin_29227425的博客 528

java twaver_TWaver 2.0 发布,附在线demo 截图

SERVA Software announced TWaver 2.0 now available for production use. TWaver 2.0 delivers two new product branches, TWaver Web and TWaver GIS. With the solutions, developers can extend their OSS appli...

weixin_27252001的博客 248

基于C#的机器人控制框架:如何将ROS与硬件集成

本文探讨了如何利用C#与ROS(Robot Operating System)集成开发机器人控制系统。通过ROSSharp库和rosbridge中间件,实现了C#与ROS的WebSocket通信,并展示了硬件控制模块的设计方法。文章详细介绍了电机控制的串口通信实现、ROS消息订阅机制,以及性能优化和容错处理策略,最终构建了一个智能小车控制框架的案例。这种C#与ROS的集成方案为机器人开发提供了跨平台支持,同时兼顾了系统的高效性和可靠性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1140

twaver 一个java图形开发框架 mark一下

[url=http://www.servasoftware.com/twaver.php]http://www.servasoftware.com/twaver.php[/url] [url=http://www.flickr.com/photos/lich0079/4464284822/][img]http://farm5.static.flickr.com/4065/4464284822...

任香980101 240

【可不卸载重装】VS2019新建项目里没有CUDA选项

问题:VS2019 新建项目里没有CUDA选项,vs也属性没有cuda。这是因为你在Visual Studio 2019安装之前,先安装了CUDA Toolkit。

qq_62844901的博客 1320

【网络与爬虫 44】Canvas指纹伪造技术:突破浏览器图形渲染检测的终极指南

Canvas和WebGL指纹是现代反爬虫系统中最难绕过的检测技术之一,它们通过分析浏览器图形渲染的细微差异来识别用户设备。本文将深入解析Canvas和WebGL指纹的工作原理,探讨其在反爬虫检测中的应用,并提供多种有效的伪造和绕过策略,帮助开发者理解并应对这些高级检测技术。

熵数实验室 1206

当ECharts碰到TWaver

百度公司的ECharts发展迅速,已经成为HTML5 Chart的佼佼者,这让大家骄傲:中国人终于也有世界级的开源通用UI产品了。正如其网站所说,它是百度的,是中国的,也是世界的。想想那些年,我们追逐感慨过的chart产品,fusionchart、highchart等等不计其数,随着HTML5的迅速普及和ECharts的疯狂发展,大家可以忘掉那些产品了。其他商业chart产品基本上也离颤抖中关门的日子不远了

TWaver可视化 2817

全网详细解决Client does not support authentication protocol requested by server;consider upgrading Mysql c

全网详细解决1251 - Client does not support authentication protocol requested by server; consider upgrading Mysql client。

念兮为美 5478

TWaver的Chart图

package com.chart; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; imp...

徐彬的进行曲 163

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 关注细节-TWaver Android
下一篇: 如何允许WebGL从本地载入资源
subnetwork
博客等级 码龄17年 17粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值