A discussion forum for JFreeChart (a 2D chart library for the Java platform).
-
Pellegrino
- Posts: 16
- Joined: Wed Jun 17, 2009 5:00 pm
Post
by Pellegrino » Wed Jul 22, 2009 2:51 pm
Hello,
I have a problem with showing the labels for one bar in BarChart. They are not just visible! Is it a bug?
Code: Select all
//StackedBarRenderer renderer = new StackedBarRenderer();
LayeredBarRenderer renderer = new LayeredBarRenderer();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelFont(Constants.STANDARD_FONT_ST);
renderer.setBaseItemLabelPaint(Color.black);
renderer.setBaseItemLabelsVisible(true);
if(legend){
for(int i = 0; i < dataset.getRowCount(); i++)
renderer.setLegendTextFont(i, Constants.SMALL_FONT_ST);
}
renderer.setItemMargin(0.01);
renderer.setSeriesBarWidth(0, 1.0);
renderer.setSeriesBarWidth(1, 0.4);
renderer.setSeriesPaint(1,new Color(77, 159, 120));
renderer.setSeriesPaint(0, Color.yellow);
CategoryAxis domainAxis = new CategoryAxis();
domainAxis.setCategoryMargin(0.25);
domainAxis.setUpperMargin(0.05);
domainAxis.setLowerMargin(0.05);
domainAxis.setLabel(domainAxesLabel);
domainAxis.setLabelFont(labelFont);
domainAxis.setTickLabelFont(tickLabelFont);
ValueAxis valueAxis = new NumberAxis();
valueAxis.setLabel(rangeAxesLabel);
valueAxis.setLabelFont(labelFont);
valueAxis.setTickLabelFont(tickLabelFont);
CategoryPlot plot = new CategoryPlot(dataset, domainAxis, valueAxis, renderer);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
Marker marker = new ValueMarker(1.67d, Color.black, new BasicStroke());
plot.addRangeMarker(marker);
JFreeChart chart = new JFreeChart(title,
labelFont,
plot,
legend);
chart.setBackgroundPaint(Color.white);
chart.getLegend().setFrame(BlockBorder.NONE);
Thanx for any help!
-
Pellegrino
- Posts: 16
- Joined: Wed Jun 17, 2009 5:00 pm
Post
by Pellegrino » Tue Jul 28, 2009 2:29 pm
I need quickly fix this problem!... Thanx
-
Pellegrino
- Posts: 16
- Joined: Wed Jun 17, 2009 5:00 pm
Post
by Pellegrino » Thu Sep 17, 2009 3:04 pm
Here is an answer
Code: Select all
final LayeredBarRenderer renderer2 = new LayeredBarRenderer();
StandardCategoryItemLabelGenerator categoryLabel = new StandardCategoryItemLabelGenerator("{2}",new DecimalFormat( "###.##" ));
renderer2.setBaseItemLabelGenerator(categoryLabel);
renderer2.setBaseItemLabelsVisible(true);
renderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.INSIDE12, TextAnchor.TOP_CENTER));
renderer2.setBaseItemLabelFont(ReportConstants.STANDARD_FONT_ST);
renderer2.setBaseItemLabelPaint(Color.black);
renderer2.setBaseLegendTextFont(ReportConstants.SMALL_ARIAL_FONT_ST);
renderer2.setItemMargin(0.01);
renderer2.setSeriesBarWidth(0, 0.6);
renderer2.setSeriesPaint(0, Color.yellow);
-
candinho85
- Posts: 2
- Joined: Fri Oct 30, 2009 6:36 pm
- antibot: No, of course not.
Post
by candinho85 » Fri Oct 30, 2009 6:43 pm
Pellegrino wrote:Here is an answer
Code: Select all
final LayeredBarRenderer renderer2 = new LayeredBarRenderer();
StandardCategoryItemLabelGenerator categoryLabel = new StandardCategoryItemLabelGenerator("{2}",new DecimalFormat( "###.##" ));
renderer2.setBaseItemLabelGenerator(categoryLabel);
renderer2.setBaseItemLabelsVisible(true);
renderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.INSIDE12, TextAnchor.TOP_CENTER));
renderer2.setBaseItemLabelFont(ReportConstants.STANDARD_FONT_ST);
renderer2.setBaseItemLabelPaint(Color.black);
renderer2.setBaseLegendTextFont(ReportConstants.SMALL_ARIAL_FONT_ST);
renderer2.setItemMargin(0.01);
renderer2.setSeriesBarWidth(0, 0.6);
renderer2.setSeriesPaint(0, Color.yellow);
Hi, you have only two bars right?
You set each color, but if i need more bars? Do you Know?
-
Pellegrino
- Posts: 16
- Joined: Wed Jun 17, 2009 5:00 pm
Post
by Pellegrino » Thu Nov 12, 2009 11:35 am
You can do next:
Code: Select all
Color[dataset.getRowCount()] colorList = { Color.red, Color.white ... Color.black};
for(int i = 0; i < dataset.getRowCount(); i++)
renderer.setSeriesPaint(i,colorList[i]);