Я пытаюсь закодировать класс с именем MultipleAxisLineChart
. Как следует из названия, это будет LineChart
, который будет иметь несколько осей (я предполагаю, что все дополнительные оси будут размещены либо на Side.LEFT
, либо на Side.RIGHT
).Настройка ширины участка линии LineChart
Все оси с заданной стороны будут расположены на tickLabelGapProperty
. Правые оси должны быть дополнительно x-переведены суммой ширины левых боковых осей.
Проблема возникла, когда я пришел к моменту вычисления предпочтительной ширины диаграммы (учитывая мои предыдущие предположения, области графиков будут иметь одинаковый размер, поэтому они могут быть размещены сверху друг друга). Свойство LineChart#widthProperty
возвращает ширину всего объекта LineChart
(включая свойство оси Y и свойство зазора) - так что этот, безусловно, не будет лучшим кандидатом для установки одинаковой ширины для всех областей сюжета LineChart
(так как мне пришлось бы вычислять разную ширину для каждый график - помните, что tickLabelGap отличается для каждого).
Я могу получить (и даже установить) ширину оси (только Axis#widthProperty
), но не LineChart
участок площадь ширина. Итак, мой вопрос: есть ли способ произвольно установить ширину LineChart
участок, чтобы все области в разных диаграммах имели одинаковую ширину?
обновление
Я пытаюсь добиться эффекта, подобного HighCharts
нескольким осямов: Моей попытки использовать StackPane
и добавить все диаграммы, как дети. Я мог бы контролировать размер диаграммы, установив ширину стека.
Что вы делаете? Вы подклассифицируете LineChart и создаете собственную диаграмму с несколькими осями или используете [StackPane для наложения нескольких диаграмм друг на друга] (http://stackoverflow.com/questions/9667405/how-to-draw-multiple- ось-на-а-чарт-с помощью JavaFX-карт-)? Это [решение для нескольких осей на диаграмме] (http://stackoverflow.com/questions/26303111/move-tick-label-javafx-2) полезно (это немного взломать)? Я советую затянуть вопрос и облегчить кому-то ответить ([mcve] (http://stackoverflow.com/help/mcve) или изображение). – jewelsea
@jewelsea Спасибо за ответ. Я обновил свой вопрос. Я подклассифицирую StackPane. «Решение с несколькими осями на диаграмме» не совсем то, что я ищу. Я думаю, что прилагаемая картина будет говорить сама за себя :) –
Картина говорит тысячу слов, красивая диаграмма .. попробуйте начать свою работу с [этого образца] (https://gist.github.com/jewelsea/3668862) в сочетании с ответ на вопрос с несколькими осями и посмотреть, можете ли вы воспроизвести диаграмму в своем вопросе. Бонусные баллы, если вы можете [сделать его динамическим] (https://gist.github.com/jewelsea/2129306). Подклассификация, а не укладка, вероятно, является «правильным» способом сделать это, но будет сложнее достичь. – jewelsea