jFreeChart

1 resposta
T

ola!

Estou pecisando de uma ajuda.
Sera que alguem sabe como colocar labels no grafico de barras e no de linhas?

Obrigado.

1 Resposta

T

Ai galera,
consegui colocar o label mas não sei se eh a melhor pratica, porem eh a que eu tenho no momento.

vc tem que implementar um novo Renderer e nele colocar um CategoryTextAnnotation pra cada barra ou ponto.

static class CustomBarRenderer3D extends BarRenderer3D {

        /**
         * Creates a new renderer.
         */
        public CustomBarRenderer3D() {
		}

		/**
		 * Returns the paint for an item. Overrides the default behaviour
		 * inherited from AbstractSeriesRenderer.
		 * 
		 * @param row
		 *            the series.
		 * @param column
		 *            the category.
		 * 
		 * @return The item color.
		 */
		public Paint getItemPaint(int row, int column) {
			CategoryDataset dataset = getPlot().getDataset();
			Comparable coluna = dataset.getColumnKey(column);
			double value = dataset.getValue(row, column).doubleValue();

			CategoryTextAnnotation a = new CategoryTextAnnotation("" + value,
					coluna, 0.01);
			a.setCategoryAnchor(CategoryAnchor.START);
			a.setFont(new Font("SansSerif", Font.PLAIN, 12));
			a.setTextAnchor(TextAnchor.BOTTOM_LEFT);
			getPlot().addAnnotation(a);

			if (coluna.equals("ACUM")) {
				return Color.blue;
			} else if (coluna.equals("ACUM \nAno")) {
				return Color.green;
			} else {
				return Color.yellow;
			}

		}
	}

Obs: Neste exemplo eu tb mudo a cor de duas colunas.

Depois eh só utilizar este renderer para o seu plot.

CustomBarRenderer3D renderer = new CustomBarRenderer3D();
        plot.setRenderer(renderer);

Se alquem souber como fazer de uma forma melhor me diga.

Valeu!

Criado 6 de setembro de 2007
Ultima resposta 6 de set. de 2007
Respostas 1
Participantes 1