Boa tarde pessoal,
Estou utilizando o CeWolf para a geração de gráficos em uma aplicação, porém, não encontrei documentação sobre como personalizar as cores dos graficos (por exemplo, das colunas, linhas, etc) e as fontes (tipo de fonte, tamanho e cor).
Tem como?
Agradeço qualquer ajuda!
Isso tem a ver com a plotagem do gráfico (JFreeChart) e não com o Cewofl em sí. Eu tava procurando no site do JFreeChart, mas não lembro onde tinha visto isso.
Quando eu usei o Cewolf, me lmbro que as cores eram automáticas… O que se pode mudar é o tipo de gráfico (pizza, coluna, etc), os ‘labels’ que aparecem no gráfico, entre outras coisas.
Eu achei um pouco confuso utilizar o Cewolf, mas ele faz bem o seu trabalho.
Consegui trocar as cores das sequencias da seguinte forma:
<jsp:useBean id="pageViews" class="usuario.PageViewCountData"/>
<jsp:useBean id="postProcessor" class="usuario.PostProcessor"/>
<cewolf:chart id="line"
title="Previsão de Vendas"
type="verticalbar3d"
xaxislabel="Período"
yaxislabel="Vendas">
<cewolf:data>
<cewolf:producer id="pageViews"/>
</cewolf:data>
<cewolf:colorpaint color="#FFFFFF"/>
<cewolf:chartpostprocessor id="postProcessor"/>
</cewolf:chart>
<p>
<cewolf:img chartid="line" renderer="cewolf" width="400" height="300"/>
E na classe postProcessor:
[code]package usuario;
import de.laures.cewolf.ChartPostProcessor;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.renderer.AbstractRenderer;
import org.jfree.data.Range;
import org.jfree.chart.plot.Plot;
import java.awt.Color;
import java.awt.Paint;
import java.io.Serializable;
import java.util.Map;
import java.lang.IllegalArgumentException;
public class PostProcessor implements ChartPostProcessor {
public void processChart( Object chart, Map map ) {
// Grabbing data from mo_viewer.jsp where the PostProcessor is created
CategoryPlot plot = (CategoryPlot)((JFreeChart)chart).getPlot();
/* COLOR CHANGES */
AbstractRenderer renderer = (AbstractRenderer)plot.getRenderer();
//String[] colorSet = {"#6699CC","#FFCC33","#CC6600","#336699", "#999999"};
//String[] colorSet = {"#FF0000","#0000FF","#009900","#FF9900"};
//String[] colorSet = {"#FF0000","#0000FF","#009900","#FF9900"};
String[] colorSet = {"#009900","#FF8C00"};
int n = colorSet.length;
Paint[] colors = new Color[n];
for( int i=0; i < n; i++ ) {
String sColor = colorSet[i];
if( sColor != null ) {
colors[i] = Color.decode(sColor);
renderer.setSeriesPaint( i, colors[i] );
}
}
}
}[/code]
Pessoal, aproveitando o discussão sobre o cewolf…
Eu tenho um gráfico de linhas(line) e está funcionando bem, o que eu queria é colocar pontos nas intercessões do gráfico, geralmente é colocado um quadradinho nos pontos de quebra. Eu não sei como fazer isso com o Cewolf.
Agradeço qualquer ajuda.
Dá pra pegar o Plot do gráfico com CeWolf?
Pq programaticamente, você altera as propriedades do gráfico via classe Plot.
Assim ó:
Plot plot = chart.getPlot();
plot.algumMetodoDaClasse();
((PiePlot)plot).algumMetodoDaClassedePieChartPlot();