question: private XYPlot initializeLowerPlot ( ) { nonHeapMemory = new YIntervalSeriesImproved ( "non-heap memory" ) ; YIntervalSeriesCollection yIntervalSeriesCollection = new YIntervalSeriesCollection ( ) ; yIntervalSeriesCollection . addSeries ( nonHeapMemory ) ; DeviationRenderer renderer = new DeviationRenderer ( true , false ) ; renderer . setBaseShapesVisible ( true ) ; renderer . setSeriesStroke ( 0 , new BasicStroke ( 3.0f ) ) ; renderer . setSeriesOutlineStroke ( 0 , new BasicStroke ( 2.0f ) ) ; renderer . setSeriesShape ( 0 , new Ellipse2D . Double ( - 2.5 , - 2.5 , 5.0 , 5.0 ) ) ; renderer . setBaseToolTipGenerator ( new StandardXYToolTipGenerator ( StandardXYToolTipGenerator . DEFAULT_TOOL_TIP_FORMAT , DateFormat . getDateTimeInstance ( ) , NumberFormat . getNumberInstance ( ) ) ) ; final NumberAxis rangeAxis = new NumberAxis ( "Non-heap / kbytes" ) ; rangeAxis . setRangeType ( RangeType . POSITIVE ) ; SystemInformationData systemData = ( SystemInformationData ) dataAccessService . getLastDataObject ( systemTemplate ) ; if ( systemData != null ) { double maxNonHeapUpperRange ; if ( systemData . getMaxNonHeapMemorySize ( ) != - 1 ) { maxNonHeapUpperRange = systemData . getMaxNonHeapMemorySize ( ) / 1024.0d ; } else if ( systemData . getInitNonHeapMemorySize ( ) != - 1 ) { maxNonHeapUpperRange = ( systemData . getInitNonHeapMemorySize ( ) * 2 ) / 1024.0d ; } else { maxNonHeapUpperRange = 128 * 1024 * 1024 ; } if ( maxNonHeapUpperRange > 0 ) { rangeAxis . setRange ( 0 , maxNonHeapUpperRange ) ; rangeAxis . setAutoRangeMinimumSize ( maxNonHeapUpperRange ) ; } } final XYPlot subplot = new XYPlot ( yIntervalSeriesCollection , null , rangeAxis , renderer ) ; subplot . setAxisOffset ( new RectangleInsets ( 5.0 , 5.0 , 5.0 , 5.0 ) ) ; subplot . setRangeAxisLocation ( AxisLocation . TOP_OR_LEFT ) ; subplot . setRangeCrosshairVisible ( true ) ; return subplot ; }
target:  Initializes the lower plot.