Reputation: 29
It is possible to create a loop dataset in jfreechart ?. I have a List that contains data. Here is the code
List<ReportChart> theDatas;
public CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (ReportChart reportChart : theDatas) {
dataset.setValue(reportChart.getLevensthein(), reportChart.getMainFileName(), reportChart.getComparingFileName());
dataset.setValue(reportChart.getJaccard(), reportChart.getMainFileName(), reportChart.getComparingFileName());
dataset.setValue(reportChart.getCosine(), reportChart.getMainFileName(), reportChart.getComparingFileName());
}
return dataset;
}
In code above, I just get the last data from my List ? It so appreciated for the help...
edit =============
I try some changes, but I dont know how to get this solved.
public CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (ReportChart reportChart : theDatas) {
final String nameOfMainFile = reportChart.getMainFileName();
final String nameOfComparingFile = reportChart.getComparingFileName();
final double scoreOfLevenstheins = reportChart.getLevensthein();
final double scoreOfJaccard = reportChart.getJaccard();
final double scoreOfCosine = reportChart.getCosine();
final String algoritma1 = "Levenstheins";
final String algoritma2 = "Jaccard";
final String algoritma3 = "Cosine";
System.out.println(algoritma1 + " : " + "<" + nameOfMainFile + " || " + nameOfComparingFile + ">" + " : " + scoreOfLevenstheins);
System.out.println(algoritma2 + " : " + "<" + nameOfMainFile + " || " + nameOfComparingFile + ">" + " : " + scoreOfJaccard);
System.out.println(algoritma3 + " : " + "<" + nameOfMainFile + " || " + nameOfComparingFile + ">" + " : " + scoreOfCosine);
dataset.addValue(scoreOfLevenstheins, algoritma1, nameOfComparingFile);
dataset.addValue(scoreOfJaccard, algoritma2, nameOfComparingFile);
dataset.addValue(scoreOfCosine, algoritma3, nameOfComparingFile);
}
return dataset;
}
This is the first screenshot of my application when I am choose the data : https://www.dropbox.com/s/t46mzo42of7hdyl/failed1.png and this is the graph to represented the similiar of both code https://www.dropbox.com/s/a5dpzf9j22tfqdh/failed2.png
Mr .TrashGod. this is the complete problem ... failed to loop List of Data in JfreeChart
==== edit again ====
I ve been try new experiment, dataset.addvalue need unique ID and value in comparable column key. the code like this :
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
for (ReportChart object : theDatas) {
String algoritma1 = "Levenstheins";
String algoritma2 = "Jaccard";
String algoritma3 = "Cosine";
String nameOfComparingFile = object.getComparingFileName();
double scoreLv = object.getLevensthein();
double scoreJc = object.getJaccard();
double scoreCo = object.getCosine();
defaultcategorydataset.addValue(scoreLv, algoritma1, nameOfComparingFile);
defaultcategorydataset.addValue(scoreJc, algoritma2, nameOfComparingFile);
defaultcategorydataset.addValue(scoreCo, algoritma3, nameOfComparingFile);
String s = "First";
String s1 = "Second";
String s2 = "Third";
String s3 = "Category 1";
String s4 = "Category 2";
String s5 = "Category 3";
String s6 = "Category 4";
String s7 = "Category 5";
defaultcategorydataset.addValue(scoreLv, algoritma1, s3);
defaultcategorydataset.addValue(scoreJc, algoritma2, s4);
defaultcategorydataset.addValue(scoreCo, algoritma3, s5);
defaultcategorydataset.addValue(scoreLv, algoritma1, s6);
defaultcategorydataset.addValue(scoreJc, algoritma2, s7);
defaultcategorydataset.addValue(scoreCo, algoritma3, s3);
defaultcategorydataset.addValue(scoreLv, algoritma1, s4);
defaultcategorydataset.addValue(scoreJc, algoritma2, s5);
defaultcategorydataset.addValue(scoreCo, algoritma3, s6);
defaultcategorydataset.addValue(scoreLv, algoritma1, s7);
defaultcategorydataset.addValue(scoreJc, algoritma2, s3);
defaultcategorydataset.addValue(scoreCo, algoritma3, s4);
defaultcategorydataset.addValue(scoreLv, algoritma1, s5);
defaultcategorydataset.addValue(scoreJc, algoritma2, s6);
defaultcategorydataset.addValue(scoreCo, algoritma3, s7);
}
from that, I know that I need a comparable. How to make this real Mr.trashGod. i was try this code from the link that you pointing to me
public class UniqueValue implements Comparable<UniqueValue>{
private final String uniqueId;
private final String value;
public UniqueValue(String uniqueId, String value) {
this.uniqueId = uniqueId;
this.value = value;
}
UniqueValue(String nameOfComparingFile, double scoreLv) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int compareTo(UniqueValue o) {
return uniqueId.compareTo(o.uniqueId);
}
@Override
public int hashCode() {
return uniqueId.hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof UniqueValue) {
return uniqueId.equals(((UniqueValue)obj).uniqueId);
}
return false;
}
@Override
public String toString() {
return value;
}
}
and now, how to use this class..?
Upvotes: 0
Views: 607
Reputation: 4477
Take a look at the API docs for the setValue() method - the first argument is the data value, followed by the row and column keys that identify the cell for the value. So in your code you are setting the value in one cell three times in each iteration of the loop. You'll end up with the value you set the third time.
Upvotes: 2