Olá pessoal, 8)
Comecei a usar a API do JFreeChart e montei um gráfico interessante, porém em certas situações os valores se sobrepõem, dificultando a visualização do valor que está na horizontal.
Eu queria saber se é possivel colocar os valores na diagonal, ou seja , inclinado.
O código está abaixo.
import java.awt.Color;
import java.awt.Font;
import javax.swing.JLabel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberAxis3D;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class DualAxisDemo4 extends ApplicationFrame
{
public DualAxisDemo4(final String title)
{
super(title);
final String sPrevisto = "Previsto";
final String sFaturado = "Faturado";
final String sEspaco = "espaco";
// column keys...
final String s13 = "Ago/05";
final String s12 = "Set/05";
final String s11 = "Out/05";
final String s10 = "Nov/05";
final String s09 = "Dez/05";
final String s08 = "Jan/06";
final String s07 = "Fev/06";
final String s06 = "Mar/06";
final String s05 = "Abri/06";
final String s04 = "Mai/06";
final String s03 = "Jun/06";
final String s02 = "Jul/06";
final String s01 = "Ago/06";
final String s00 = "Set/06";
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1971.12,sFaturado,s13);
dataset.addValue(2556.17,sFaturado,s12);
dataset.addValue(3676.55,sFaturado,s11);
dataset.addValue(2909.95,sFaturado,s10);
dataset.addValue(5276.55,sFaturado,s09);
dataset.addValue(3440.93,sFaturado,s0;
dataset.addValue(5071.78,sFaturado,s07);
dataset.addValue(3889.37,sFaturado,s06);
dataset.addValue(2173.67,sFaturado,s05);
dataset.addValue(3482.83,sFaturado,s04);
dataset.addValue(3428.29,sFaturado,s03);
dataset.addValue(3183.70,sFaturado,s02);
dataset.addValue(2358.98,sFaturado,s01);
dataset.addValue(1728.41,sFaturado,s00);
StandardCategoryItemLabelGenerator standardcategoryitemlabelgenerator = new StandardCategoryItemLabelGenerator();
final BarRenderer renderer1 = new BarRenderer();
renderer1.setItemLabelGenerator(standardcategoryitemlabelgenerator);
renderer1.setItemLabelsVisible(true);
renderer1.setSeriesPaint(0, Color.blue);
renderer1.setSeriesItemLabelFont(0,new Font("Arial", 0, 9));
CategoryPlot plot = new CategoryPlot();
plot.setDataset(0,dataset);
plot.setRenderer(0,renderer1);
plot.setDomainAxis(new CategoryAxis("Meses"));
plot.setRangeAxis(new NumberAxis("R$"));
plot.setOrientation(PlotOrientation.VERTICAL);
plot.setRangeGridlinesVisible(true);
plot.setDomainGridlinesVisible(true);
// create the dataset...
final DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
dataset1.addValue(2250,sPrevisto,s13);
dataset1.addValue(2400,sPrevisto,s12);
dataset1.addValue(2700,sPrevisto,s11);
dataset1.addValue(3000,sPrevisto,s10);
dataset1.addValue(3300,sPrevisto,s09);
dataset1.addValue(3600,sPrevisto,s0;
dataset1.addValue(3900,sPrevisto,s07);
dataset1.addValue(4200,sPrevisto,s06);
dataset1.addValue(4300,sPrevisto,s05);
dataset1.addValue(4100,sPrevisto,s04);
dataset1.addValue(4000,sPrevisto,s03);
dataset1.addValue(3900,sPrevisto,s02);
dataset1.addValue(3500,sPrevisto,s01);
dataset1.addValue(3300,sPrevisto,s00);
LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
plot.setDataset(1,dataset1);
plot.setRenderer(1,lineandshaperenderer);
lineandshaperenderer.setShapesVisible(true);
//final BarRenderer lineandshaperenderer = new BarRenderer();
lineandshaperenderer.setItemLabelGenerator(standardcategoryitemlabelgenerator);
lineandshaperenderer.setItemLabelsVisible(true);
lineandshaperenderer.setSeriesLinesVisible(0,true);;
lineandshaperenderer.setSeriesPaint(0,Color.black);
lineandshaperenderer.setSeriesItemLabelFont(0,new Font("Arial", 0, 9));
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
plot.getDomainAxis().setLowerMargin(0);
plot.getDomainAxis().setUpperMargin(0);
JFreeChart chart = new JFreeChart(plot);
chart.setTitle("Acompanhamento de Venda");
// OPTIONAL CUSTOMISATION COMPLETED.
// add the chart to a panel...
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(1010, 635));
setContentPane(chartPanel);
}
public static void main(final String[] args) {
final DualAxisDemo4 demo = new DualAxisDemo4("Dual Axis Demo 4");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
Bom Dia Fernando, td bem :?: