【问题标题】:create bar chart using jfreechart by accessing data from 2 files and display data of file 1 and file 2 with different color通过访问来自 2 个文件的数据并使用不同颜色显示文件 1 和文件 2 的数据,使用 jfreechart 创建条形图
【发布时间】:2013-02-28 17:05:18
【问题描述】:

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

公共 JFreeChart createBarChartFromCSV() {

    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;
}

【问题讨论】:

    标签: java jfreechart bar-chart


    【解决方案1】:

    您似乎正在为每个系列制作单独的数据集,并为每个数据集制作单独的图表。相反,您希望一个数据集在一个图表中包含两个系列。 DefaultCategoryDataset 可以有多个系列;在更改数据集的方法中,每个系列都由 rowKey 参数标识。一个很好的例子是BarChartDemo1,如图here 三个系列; source code 随发行版一起提供。

    顺便说一句,您还可以查看org.jfree.data.io.CSV 是否符合您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 2021-01-01
      • 2016-03-21
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多