KingMaker
KingMaker

Reputation: 309

JFReeCharts XYPlot is it possible to change shapes inside legends

lt.setPosition(RectangleEdge.BOTTOM);
lt.setItemFont(old);
// get the range axis and add the $ symbol for the values
NumberAxis na = (NumberAxis) plot.getRangeAxis();       
// set font
na.setLabelFont(fAxisFont); 
na.setTickLabelFont(fAxisFont);
na.setAutoRange(true);

The above is my code snippet.Can anyone tell how to to chang shapes inside legends

Upvotes: 0

Views: 212

Answers (2)

Tiago
Tiago

Reputation: 3131

I'm using the following workaround:

StandardXYItemRenderer renderer = new StandardXYItemRenderer() {
    private static final long serialVersionUID = 0L;

    @Override
    public LegendItem getLegendItem(int datasetIndex, int series) {
        LegendItem legend = super.getLegendItem(datasetIndex,
                series);
        return new LegendItem(legend.getLabel(),
                legend.getDescription(), legend.getToolTipText(),
                legend.getURLText(), Plot.DEFAULT_LEGEND_ITEM_BOX,
                legend.getFillPaint());
    }
};

...

plot.setRenderer(renderer);

Result: enter image description here

Upvotes: 2

trashgod
trashgod

Reputation: 205785

A LegendItem infers its Shape from the corresponding series, which can be changed as shown here. This related example shows one way to render a LegendItem in an external component.

image

Upvotes: 1

Related Questions