Java JFreechart&;Servlet:如何从鼠标位置计算数据点

Java JFreechart&;Servlet:如何从鼠标位置计算数据点,java,servlets,jfreechart,Java,Servlets,Jfreechart,我正在servlet中绘制一个散点图,并将其提供给浏览器。 用户现在可以单击绘图上的某个位置,我想确定是什么 用户指向的散点图的数据点。从鼠标单击 用户I可以确定他单击了图像的哪个像素,但如何确定 我从这个信息得到域和范围轴上的坐标 我找到了tipps如何做,它使用了ChartPanel。而是直接为它服务 对于浏览器,我只使用JFreeChar对象的实例 有人知道怎么做吗 谢谢, 迪特尔我想我找到了解决办法。对于解决方案,我需要再次获取图表, 所以我要么创建一个新的,要么以某种方式保存它。但是当

我正在servlet中绘制一个散点图,并将其提供给浏览器。 用户现在可以单击绘图上的某个位置,我想确定是什么 用户指向的散点图的数据点。从鼠标单击 用户I可以确定他单击了图像的哪个像素,但如何确定 我从这个信息得到域和范围轴上的坐标

我找到了tipps如何做,它使用了ChartPanel。而是直接为它服务 对于浏览器,我只使用JFreeChar对象的实例

有人知道怎么做吗

谢谢,
迪特尔

我想我找到了解决办法。对于解决方案,我需要再次获取图表, 所以我要么创建一个新的,要么以某种方式保存它。但是当我有推荐人的时候 对于该图表,解决方案如下所示:


JFreeChart chart = functionWhichRetrievesTheChart();
ChartRenderingInfo info = new ChartRenderingInfo();
// PLOT_SIZE is the size if the graph and has to be the same size as the original drawn chart.createBufferedImage(PLOT_SIZE, PLOT_SIZE, info); 
graph, otherwise the pixel position points to somewhere else
PlotRenderingInfo plotInfo = info.getPlotInfo();


XYPlot plot = (XYPlot)chart.getPlot();
Point p = new Point(x,y); // x and y are the pixel positions

// this is the domain value which belongs to the pixel position x
double domain = plot.getDomainAxis().java2DToValue(p.getX(), plotInfo.getDataArea(), plot.getDomainAxisEdge()); 

// this is the range value which belongs to the pixel position y
double range = plot.getRangeAxis().java2DToValue(p.getY(), plotInfo.getDataArea(), plot.getRangeAxisEdge());

如果您正在为浏览器提供JFreeChart,它不是呈现为图像吗?听起来你想要的是有适当客户端交互的东西,比如或。@mattball嗨,matt,不是真的。我不想在客户方面做出反应。在这里,我只需注意用户单击的位置(哪个像素),并将此信息发送到服务器端以不同方式渲染图片(如放大或平移)。为此,我需要将像素位置映射到图形位置,以便我知道图像的新中心应该是什么。您可以使用HTML图像映射吗?