У меня есть XYLineChart, построенный с JFreeChart.Мне нужно, учитывая тот график и ChartMouseEvent, получить значение X ряда displayde, ближайшего к точке, где была нажата мышь.
Благодаря предыдущему посту я смогчтобы получить смещение серой диаграммы (координаты зеленой точки на изображении) и ее размер следующим способом:
Rectangle2D greyChartArea = chartPanel.getChartRenderingInfo().getPlotInfo().getDataArea();
Я также знаю максимальные значения X отображаемой серии:
double maxXValue = seriesCollection.getDomainUpperBound(true); //where seriesCollection is an XYSeriesCollection object
Теперь проблема в том, что для преобразования координаты мыши (точки) в соответствующее значение на диаграмме мне нужно знать, сколько единиц (двойных) соответствуетпиксель на экране.К сожалению, существует разрыв между максимальным значением X (в нашем случае 60) и шириной серой диаграммы (посмотрите на большую синюю линию), поэтому я не могу добиться идеального преобразования.
Тогда у меня есть двавопросы:
- Как точно рассчитать разрыв в пикселях между последним отображаемым значением x и всей серой диаграммой?(длина большой синей линии)
- Я что-то не так делаю?Есть ли более простой способ достижения этих целей, возможно, избегая всего этого исчисления?Я новичок в JFreeChart, и документации этой библиотеки недостаточно, поэтому, возможно, мне не хватает некоторых функций, которые могли бы мне помочь.