之前也没有接触过JFreeChart,如有错误或更简单的实现恳请指出, 谢谢。
JFreeChart的默认只有鼠标在数据点上的时候才显示tooltip;两点之间的数据就不能显示tooptip,如果数据是滚动变化的就更难使用。 所以决定干脆鼠标放哪,就显示鼠标点的数据。
最终效果如下图:
查了下Api,JFreeChart好像没有这样的功能,只好自己实现了.
JFreeChart中画图的面板是ChartPanel, tooltip的文字内容也是由这个类产生的.只要继承ChartPanel并重载getToolTipText方法就行了。下面是代码实现:
package com.straw; public class ToolTipChartPanel extends ChartPanel { private ValueAxis xAxis; private ValueAxis yAxis; private SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss"); public ToolTipChartPanel(JFreeChart chart, XYPlot xyplot) { super(chart); this.xAxis = xyplot.getDomainAxis(); this.yAxis = xyplot.getRangeAxis(); } @Override public String getToolTipText(MouseEvent e) { Rectangle2D dataArea = getScaledDataArea(); // 不在区域内的直接返回 if (!dataArea.contains(e.getX(), e.getY() )) { return null; } long x = getValueX(dataArea, e.getX()); double y = getValueY(dataArea, e.getY()); return sdf.format(new Date(x)) + ", " + 100*y + "%"; } private long getValueX(Rectangle2D dataArea, int mouseX) { // 1 获得像素值 long x = (long) (mouseX - dataArea.getMinX()); // 2 转化成时间毫秒 double lowerBound = xAxis.getLowerBound(); double upperBound = xAxis.getUpperBound(); x = (long) (x*(upperBound - lowerBound)/dataArea.getWidth() + lowerBound); return x; } private double getValueY(Rectangle2D dataArea, int mouseY) { // 1 获得像素值 double y = (dataArea.getHeight() - (mouseY - dataArea.getMinY())); // 2 转化成数值 double lowerBound = yAxis.getLowerBound(); double upperBound = yAxis.getUpperBound(); y = (y*(upperBound - lowerBound)/dataArea.getHeight() + lowerBound); return y; } }
相关推荐
在Java编程语言中,利用JFreeChart库实现实时曲线图是一种常见的数据可视化技术,尤其适用于需要实时监控或展示数据变化的应用场景。JFreeChart是一个开源的Java图表库,提供了丰富的图表类型和自定义选项,使得...
根据提供的信息,我们可以总结出以下关于使用 JFreeChart 实现柱状图排序的相关知识点: ### 一、背景介绍 在日常的数据分析与展示工作中,柱状图是非常常见的一种图表类型,它能直观地显示不同类别之间的数值差异...
Java 利用 JFreeChart 实现数据统计图 在数据挖掘中,数据分析的结果需要直观地展现给用户,这就需要使用数据统计图。Java 中可以使用 JFreeChart 库来实现各种数据统计图,如柱形图、饼图、折线图等。下面将详细...
下面我们将详细介绍如何利用JFreeChart实现这些图表。 1. **柱状图(Bar Chart)** 柱状图是表示分类数据的一种方式,每个类别由一个垂直的矩形表示,矩形的高度表示该类别的数量或比例。在JFreeChart中,你可以...
本文将深入探讨如何利用JFreeChart库来实现一个雷达图实例,这有助于数据可视化,特别是在数据分析和报告中。 首先,我们来看`WMPolarPlot.java`,这个文件很可能包含了对极坐标图(Polar Plot)的实现,因为雷达图...
JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中创建多种类型的图表,包括雷达图(也称为蜘蛛网图)。本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用...
本教程将重点介绍如何使用Java的JFreeChart库在JSP页面上实现甘特图。 JFreeChart是一款强大的Java图表库,支持创建各种类型的图表,包括柱状图、饼图、线图以及我们的目标——甘特图。在JSP页面中使用JFreeChart,...
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
在Java编程环境中,JFreeChart库是一个强大的工具,用于创建各种复杂的图表,包括柱状图、折线图和雷达图。这些图表对于数据可视化和数据分析非常有用,可以帮助开发者直观地展示大量信息。以下是对给定文件中每个...
"JFreeChart+JSP实现统计图展示"是一个典型的Web应用程序开发案例,它结合了JFreeChart库、JavaServer Pages (JSP) 和Servlet技术,用于从SQL Server 2005数据库中提取数据并以图表的形式呈现。 **JFreeChart** 是...
Java 利用 JFreeChart 实现各种数据统计图 本文主要介绍了使用 Java 语言和 JFreeChart 库来实现各种数据统计图的方法,包括柱形图、饼图、折线图等。统计图是数据分析和可视化的重要工具,可以帮助用户更好地理解...
JFreeChart是一款强大的Java图形库,它允许开发者创建各种复杂的图表,包括我们这里关注的雷达图(也称为蜘蛛网图)。雷达图是一种多轴图表,常用于比较多个变量在同一尺度上的表现,或者展示数据在多个维度上的分布...
在"JSP+JFreeChart 实现曲线图、柱形图"的项目中,开发者首先需要在JSP页面中引入JFreeChart的相关库。这通常通过在页面头部添加JAR依赖或者使用Maven或Gradle等构建工具来完成。然后,我们需要在Java后端代码中创建...
使用jfreechart绘制风速风向玫瑰图可以非常方便地实现各种风速风向分析。例如,我们可以使用不同的颜色来表示不同的风速和风向,可以使用雷达图像网格来表示风速的分布情况等。jfreechart提供了非常灵活的图表定制...
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
在本篇中,我们将深入探讨如何利用JFreeChart来制作雷达图(也称为蜘蛛图或星形图),并理解其相关知识点。 1. **JFreeChart简介** JFreeChart是一个开源项目,其目标是提供一个可以免费使用的高质量图表API。它...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括曲线图、柱状图、饼图、散点图等。在本示例中,我们将重点关注如何使用JFreeChart绘制曲线图,以及如何在数据点上显示具体的数据值。 ...
总的来说,JFreeChart 是一个强大的工具,可以帮助 Java 开发者轻松实现各种图表的绘制,提高数据可视化的效率和质量。通过深入学习和实践,你可以掌握更多高级特性,比如动画效果、交互式图表等,从而提升你的应用...
Java图形工具JFreeChart是Java开发中用于创建高质量图表的一款强大库,它为开发者提供了丰富的图形类型,包括折线图、柱状图、饼图、散点图等,适用于数据分析、报表生成、可视化应用等多种场景。JFreeChart以其灵活...
JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...