Esta vez nos interesa poner el eje X de la gráfica a una escala fija (no auto-escalable). Antes cuando se creaba una gráfica el eje X se adaptaba automáticamente a los valores máximos y mínimos recibidos. Ahora queremos que el rango del eje X esté entre 0 y 100 (independientemente de los valores recibidos).
Para poder apreciar bien la diferencia he usado como plantilla el ejemplo del post "Gráficas con JFreeChart (V)" cuyo Eje X se adaptaba al valor máximo recibido que era 60. En este caso el Eje X de la gráfica se adapatará al rango que le hayamos indicado (0-100).
Código (Demografia.java):
package crecimientoPoblacion;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class Demografia1 {
public static void main(String[] args) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
double poblacion = 25;
int esperanza_de_vida = 5;
double defunciones;
double poblacion_neta;
double tc = 0.2; // tasa de crecimiento 20%
double tm = 0.4; // tasa de mortalitat 40%
for (int tiempo = 0; tiempo < esperanza_de_vida; tiempo++) {
// Crecimiento
poblacion = poblacion * (1 + tc);
dataset.addValue(poblacion, "Crecimiento", "" + tiempo);
// Mortalidad
defunciones = poblacion * tm;
dataset.addValue(defunciones, "Mortalidad", "" + tiempo);
// Crecimiento Neto
poblacion_neta = (poblacion - defunciones);
dataset.addValue(poblacion_neta, "Crecimiento neto", "" + tiempo);
}
JFreeChart chart = ChartFactory.createLineChart(
"Calculo demografico",
"Tiempo",
"Población",
dataset,
PlotOrientation.VERTICAL,
true,
false,
false
);
// Rango Eje X estático de 0 a 100
CategoryPlot plot = chart.getCategoryPlot();
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setRange(0, 100);
// Mostramos la grafica en pantalla
ChartFrame fr = new ChartFrame("Cálculo Demográfico II", chart);
fr.pack();
fr.setVisible(true);
}
}
Resultado:
Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.
Archivo del blog
martes, 21 de octubre de 2014
Suscribirse a:
Entradas (Atom)
Con la tecnología de Blogger.