删除Yaxis线形图-底版中的小数

问题描述 投票:0回答:1

我正在使用带有jsf / primefaces的javaEE构建Web应用程序。

i使此代码显示折线图,但问题是y轴的值在图表中为十进制,它们从0.5,1,1.5开始...我试图将值Arraylist的类型设置为Integer,但是它不起作用,因为setData函数必须始终将Number类型作为参数。

package managedBean;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;

import org.primefaces.model.chart.Axis;
import org.primefaces.model.chart.AxisType;
import org.primefaces.model.chart.LineChartSeries;
import org.primefaces.model.charts.ChartData;
import org.primefaces.model.charts.line.LineChartDataSet;
import org.primefaces.model.charts.line.LineChartModel;
import org.primefaces.model.charts.line.LineChartOptions;
import org.primefaces.model.charts.optionconfig.title.Title;

import model.ControleVoyage;
import dao.ControleVoyageDao;
@ManagedBean(name = "chartJsViewVoyage")
public class chartJsViewVoyage {
    private LineChartModel lineModel;
    private List<Date> dateVoyageControle;

    @PostConstruct
    public void init() {
        createLineModel();
    }
     public void createLineModel() {
            lineModel = new LineChartModel();
            ChartData data = new ChartData();
            LineChartDataSet dataSet = new LineChartDataSet();
            List<Number> values = new ArrayList<>();
            /*
            ArrayList<Long> coutControlPerDate = new ArrayList();
            coutControlPerDate = (ArrayList<Long>) new dao.ControleLigneDao().getCountControleLign();
            for(int i=0; i<coutControlPerDate.size(); i++) {
                values.add(coutControlPerDate.get(i));
             }
             */
            List<ControleVoyage> listvoyage = new ArrayList();
            listvoyage = new dao.ControleVoyageDao().getAll();
            for(int i=0; i<listvoyage.size(); i++) {
                values.add(listvoyage.get(i).getVoyageControlee().getIdVoyage());
             }

            System.out.println("Count Voyage list");
            System.out.println(values);
            dataSet.setData(values);


            dataSet.setFill(false);
            dataSet.setLabel("Voyages controlée");
            dataSet.setBorderColor("rgb(75, 192, 192)");
            dataSet.setLineTension(0.1);
            data.addChartDataSet(dataSet);

            List<Date> dateVoyageControle = new dao.ControleVoyageDao().getDateControleVoyage();
            List<String> labels = new ArrayList<>();

            for(int i=0; i<dateVoyageControle.size(); i++) {
                labels.add(dateVoyageControle.get(i).toString());
             }
            System.out.println("date list");
            System.out.println(labels);
            data.setLabels(labels);

            //Options
            LineChartOptions options = new LineChartOptions();        
//          Title title = new Title();
//          title.setDisplay(true);
//          title.setText("Line Chart");
//          options.setTitle(title);

            lineModel.setOptions(options);
            lineModel.setData(data);

        }


         public LineChartModel getLineModel() {
                return lineModel;
            }

        public void setLineModel(LineChartModel lineModel) {
            this.lineModel = lineModel;
        }

}

java jsf primefaces chart.js linechart
1个回答
0
投票

您可以通过调用方法yAxis.ticks.stepSize: 1来定义图表选项yAxis.ticks.stepSize: 1

在您的代码中,看起来可能如下:

CartesianLinearTicks.setStepSize(Number stepSize)
© www.soinside.com 2019 - 2024. All rights reserved.