Eu tô fazendo um gráfico:
[code]
public class BarChartServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream out = response.getOutputStream();
try{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10.0, “IBM”, “2006”);
dataset.addValue(5.0, “Microsoft”, “2006”);
dataset.addValue(6.0, “GE”, “2006”);
dataset.addValue(7.0, “Lucent”, “2006”);
dataset.addValue(0.0, “Amanco”, “2006”);
dataset.addValue(9.0, “GM”, “2006”);
dataset.addValue(10.0, “Petrobras”, “2006”);
dataset.addValue(11.0, “Shell”, “2006”);
dataset.addValue(13.0, “Intel”, “2006”);
dataset.addValue(9.0, “AMD”, “2006”);
dataset.addValue(9.0, “Merck”, “2006”);
dataset.addValue(3.0, “Nestlé”, “2006”);
dataset.addValue(7.0, “Samsung”, “2006”);
dataset.addValue(11.0, “Toyota”, “2006”);
dataset.addValue(10.0, “Nissan”, “2006”);
dataset.addValue(11.0, “EDS”, “2006”);
dataset.addValue(15.0, “Sony”, “2006”);
dataset.addValue(1.0, “Coca-Cola Co”, “2006”);
dataset.addValue(7.0, “Petrovisa”, “2006”);
dataset.addValue(9.0, “HP”, “2006”);
dataset.addValue(10.0, “Sun”, “2006”);
dataset.addValue(13.0, “Televisa”, “2006”);
dataset.addValue(7.5, “Bombardier”, “2006”);
dataset.addValue(11.0, “Renault”, “2006”);
dataset.addValue(17.0, “FIAT”, “2006”);
JFreeChart chart = ChartFactory.createBarChart("Lucro no ano (em R$ Milhões)",
"Empresas", "Valor Faturado(Comparado a 2005)", dataset, PlotOrientation.VERTICAL,
true, true, false);
CategoryPlot cp = chart.getCategoryPlot();
NumberAxis rangeAxis = (NumberAxis) cp.getRangeAxis();
rangeAxis.setUpperMargin(0.15);
cp.setBackgroundPaint(Color.lightGray);
cp.setDomainGridlinePaint(Color.black);
cp.setDomainGridlinesVisible(true);
cp.setRangeGridlinePaint(Color.white);
Marker marker = new ValueMarker(5.0);
marker.setLabel("text on the line");
marker.setLabelFont(new Font("SansSerif", Font.ITALIC, 11));
marker.setLabelAnchor(RectangleAnchor.LEFT);
marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
// marker.setStroke(???);
marker.setPaint(Color.red);
cp.addRangeMarker(marker);
CategoryItemRenderer renderer = cp.getRenderer();
CategoryItemLabelGenerator generator
= new StandardCategoryItemLabelGenerator("{0}",
NumberFormat.getInstance());
renderer.setItemLabelGenerator(generator);
renderer.setItemLabelFont(new Font("SansSerif", Font.PLAIN, 12));
renderer.setItemLabelsVisible(true);
renderer.setPositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER,
- Math.PI / 2));
response.setContentType("image/jpeg");
ChartUtilities.writeChartAsJPEG(out, chart,1024,768);
}catch (Exception e) {
System.err.println(e.toString());
}finally {
out.close();
}
}
}[/code]
Mas não estou conseguindo o efeito de linha tracejada cortando o gráfico(é o Marker acima na posição 5.0), só linha cheia.
E também não consigo deixar os nomes das empresas, na posição vertical de baixo de cada barra correspondente. Nessa aí de cima, eu consigo deixar os nomes no meio de cada barra, mas eu quero abaixo delas(mexi em vários parâmtros como OUTLINE,BASELINE e nada).