Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过访问2个文件中的数据,使用jfreechart创建条形图,并以不同颜色显示文件1和文件2的数据_Java_Jfreechart_Bar Chart - Fatal编程技术网

Java 通过访问2个文件中的数据,使用jfreechart创建条形图,并以不同颜色显示文件1和文件2的数据

Java 通过访问2个文件中的数据,使用jfreechart创建条形图,并以不同颜色显示文件1和文件2的数据,java,jfreechart,bar-chart,Java,Jfreechart,Bar Chart,这是我用来显示特定值的代码,例如一个文件的平均值。现在我想为这两个文件中的值创建条形图,并用不同的颜色指示这两个值。plz帮助: 公共JFreeChart createBarChartFromCSV(){ CSVFileReader csvReader=new CSVFileReader(); 列表csvData=null; int indexOfAverage=0; csvData=csvReader.getDataFromCSV(CSVFileReader.CSVFILENAME); 对于(

这是我用来显示特定值的代码,例如一个文件的平均值。现在我想为这两个文件中的值创建条形图,并用不同的颜色指示这两个值。plz帮助:

公共JFreeChart createBarChartFromCSV(){

CSVFileReader csvReader=new CSVFileReader();
列表csvData=null;
int indexOfAverage=0;
csvData=csvReader.getDataFromCSV(CSVFileReader.CSVFILENAME);
对于(字符串[]列数组:csvData)
for(int i=0;i
您似乎在为每个系列制作单独的数据集,并为每个数据集制作单独的图表。相反,您希望在一个图表中包含两个系列的一个数据集。
DefaultCategoryDataset
可以有多个系列;每个系列由改变数据集的方法中的
rowKey
参数标识。一个很好的例子是,图中有三个系列;发行版附带了新的版本

另外,您还可以查看是否满足您的需求

    CSVFileReader csvReader = new CSVFileReader();
    List<String[]> csvData = null; 
    int indexOfAverage = 0;

    csvData = csvReader.getDataFromCSV(CSVFileReader.CSVFILENAME);

    for(String[] columnArray : csvData)
        for(int i = 0; i< columnArray.length; i++)
            if(columnArray[i].equalsIgnoreCase("average")){
                indexOfAverage = i;
                break;
            }

    if(indexOfAverage == 0){
        System.err.println("Error retrieving data from CSV File !!");
        System.exit(0);
    }
    JFreeChart barChart = generateBarChart(csvData, indexOfAverage);

    return barChart;
}


private JFreeChart generateBarChart(List<String[]> csvData, int columnIndex){

    DefaultCategoryDataset dataSet = new DefaultCategoryDataset();

    final String YAXIS_NAME = csvData.get(0)[columnIndex]; //value returned is "average"
    final String XAXIS_NAME = csvData.get(0)[0]; //value returned is "sampler_label"

    for(int i = 1; i < csvData.size() - 1; i++){

        long averageValue = Long.parseLong(csvData.get(i)[columnIndex]);
        String columnKey = csvData.get(i)[0];

        dataSet.setValue(averageValue, YAXIS_NAME, columnKey); // plot the graph
    }

    JFreeChart chart = ChartFactory.createBarChart("Comparison between the average of 2 values", XAXIS_NAME, YAXIS_NAME, dataSet, PlotOrientation.VERTICAL, false, true, false);
    return chart;
}