Проблема гистограммы jchart2d: первая ось X касается оси Y - PullRequest
0 голосов
/ 26 ноября 2018

Привет. Я пытаюсь отобразить горизонтальную гистограмму с помощью jchart2d.Проблема в том, что первая полоса касается оси Y.Моя цель - переместить первую вертикальную черту справа от оси Y, но не могу найти, как этого достичь.

Здесь вы можете увидеть проблему:

enter image description here

Это код:

public static void main(String[]args){
        // Create a chart:  
        Chart2D chart = new Chart2D();
        // Create an ITrace: 
        ITrace2D trace = new Trace2DSimple(); 

        // change to vertical bar diagram
        TracePainterVerticalBar vb = new TracePainterVerticalBar(chart);
        vb.setBarWidth(15);

        trace.setTracePainter(vb);  
        trace.setColor(Color.blue);

        // Add the trace to the chart. This has to be done before adding points (deadlock prevention): 
        chart.addTrace(trace);    
        chart.getAxisY().setRangePolicy(new RangePolicyFixedViewport(new Range(200, 500)));
        chart.getAxisX().setRangePolicy(new RangePolicyFixedViewport(new Range(1, 49)));
        //chart.getAxisX().setStartMajorTick(true);
        IAxis<IAxisScalePolicy> xAxis = (IAxis<IAxisScalePolicy>)chart.getAxisX();
        xAxis.setAxisScalePolicy(new AxisScalePolicyManualTicks()); 
        xAxis.setMajorTickSpacing(1);
        xAxis.setMinorTickSpacing(1);
        xAxis.setStartMajorTick(true);

        // Add all points, as it is static: 
        for(int i=0;i<StatisticsManager.getInstance().getMostUsedNumers().size();i++){
            trace.addPoint((i+1),StatisticsManager.getInstance().getMostUsedNumers().get(i));
        }
        // Make it visible:
        // Create a frame.
        JFrame frame = new JFrame("MinimalStaticChart");
        // add the chart to the frame: 
        frame.getContentPane().add(chart);
        frame.setSize(400,300);
        // Enable the termination button [cross on the upper right edge]: 
        frame.addWindowListener(
                new WindowAdapter(){
                    public void windowClosing(WindowEvent e){
                        System.exit(0);
                    }
                }
                );
        frame.setVisible(true);
    }
...