Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Wykres słupkowy
06-09-2013, 09:03 PM
Post: #1
Wykres słupkowy
Witam,
piszę skrypt, który ma mi wyświetlić czas sortowania tablicy 3 algorytmami na wykresie. Wybrałem wykres słupkowy. Wszystko ładnie pięknie tylko, że wykres "rysuje" gdy podam rzeczywiste liczby dla wykresu. Kiedy podaje pole ze zmienną która zawiera wyniki pomiaru czasu dla danego algorytmu wykres się otwiera jednak nie tworzą się żadne słupki. Zmieniałem typ danych z long na int albo double i nic to nie dało. Jeśli ktoś wie co może być nie tak z góry dziękuje za pomoc.

Klasa z wykresem:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.io.FileNotFoundException;
import org.jfree.data.Range;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import java.awt.BasicStroke;
import org.jfree.chart.annotations.CategoryLineAnnotation;
import org.jfree.chart.annotations.CategoryTextAnnotation;
import org.jfree.chart.renderer.category.StackedAreaRenderer;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.RectangleInsets;
/**
* A simple demonstration application showing how to create a bar chart.
*/
public class BarChartDemo1 extends ApplicationFrame {
public static SSS glowna;
public static int V= glowna.T1;
/**
* Creates a new demo instance.
*
* @param title the frame title.
*/
public BarChartDemo1(String title) {

super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart, false);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}
/**
* Returns a sample dataset.
*
* @return The dataset.
*/
private static CategoryDataset createDataset() {
// row keys...
String series1 = "Bubblesort";
String series2 = "Quciksort";
String series3 = "Mergesort";
// column keys...
String category1 = "Tablica 10 liczb";
String category2 = "Tablica 100 liczb";
String category3 = "Tablica 1000 liczb";

// create the dataset...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(V, series1, category1);
// dataset.addValue(7, series1, category2);
// dataset.addValue(8, series1, category3);


dataset.addValue(glowna.T2, series2, category1);
// dataset.addValue(7.5, series2, category2);
// dataset.addValue(6.0, series2, category3);*/

dataset.addValue(glowna.T3, series3, category1);
// dataset.addValue(8, series3, category2);
//dataset.addValue(2.0, series3, category3);

return dataset;
}

/**
* Creates a sample chart.
*
* @param dataset the dataset.
*
* @return The chart.
*/
private static JFreeChart createChart(CategoryDataset dataset) {

// create the chart...
JFreeChart chart = ChartFactory.createBarChart(
"Porównanie czasów działania algorytmów sortowania", // chart title
"Wielkość zbioru", // domain axis label
"Czas", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);

// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...

// set the background color for the chart...
chart.setBackgroundPaint(Color.white);

// get a reference to the plot for further customisation...
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.white);
plot.setDomainGridlinePaint(Color.black);
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.black);

// set the range axis to display integers only...
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

// disable bar outlines...
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setDrawBarOutline(false);

// set up gradient paints for series...
GradientPaint gp0 = new GradientPaint(
0.0f, 0.0f, Color.blue,
0.0f, 0.0f, new Color(0, 0, 64)
);
GradientPaint gp1 = new GradientPaint(
0.0f, 0.0f, Color.green,
0.0f, 0.0f, new Color(0, 64, 0)
);
GradientPaint gp2 = new GradientPaint(
0.0f, 0.0f, Color.red,
0.0f, 0.0f, new Color(64, 0, 0)
);
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);

CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 1000)
);
// OPTIONAL CUSTOMISATION COMPLETED.

return chart;

}
}

Klasa główna:
import java.io.FileNotFoundException;
import org.jfree.ui.RefineryUtilities;

public class SSS {
public static losowanie wylosuj;
public Bubble2 sortbuble;
public Mergesort2 sortmerge;
public Quicksort sortquick;
public static int tablica[];
public static int ile_liczb=10;
public static int T1;
public static int T2;
public static int T3;

public SSS(int tablica[], int ile_liczb)
{
this.ile_liczb = ile_liczb;
this.tablica = tablica;
}
public static int[] stworzonatablica(){
int tablica[] = new int[ile_liczb];
for (int i = 0; i <ile_liczb; i++){
tablica[i] = losowanie.losuj(); }
return tablica;
}
public SSS(){
int[] t= stworzonatablica();
int [] t1=t.clone();
int [] t2=t.clone();
sortbuble = new Bubble2( t , ile_liczb);
sortmerge = new Mergesort2(t1, ile_liczb);
sortquick = new Quicksort(t2, ile_liczb);
wylosuj = new losowanie();
}

public static void main(String[] args) throws FileNotFoundException {
int i;
SSS k=new SSS();
long start1 = System.nanoTime();
k.sortbuble.b_sort(k.sortbuble.tablica,k.sortbuble.ile_liczb);
long d =(System.nanoTime()-start1);
int T1 = (int)d;

long start2 = System.nanoTime();
k.sortquick.quicksort(k.sortquick.tablica,0, k.sortquick.ile_liczb-1);
long q =(System.nanoTime()-start2);
int T2 = (int)q;

long start3 = System.nanoTime();
k.sortmerge.mergesort(0,k.sortmerge.ile_liczb-1);
long y =(System.nanoTime()-start3);
int T3 = (int)y;

System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
BarChartDemo1 demo = new BarChartDemo1("Wykres");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);

}
}
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości