gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:48:28 25 4
gpt4 key购买 nike

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

公共(public) 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;
}

最佳答案

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

顺便说一句,您可能还会看到 org.jfree.data.io.CSV满足您的要求。

关于java - 使用jfreechart创建条形图,通过访问2个文件中的数据并以不同的颜色显示文件1和文件2的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15141434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com