当前位置: 代码迷 >> Java Web开发 >> jfreechart柱状图中的数值如何样横着显示
  详细解决方案

jfreechart柱状图中的数值如何样横着显示

热度:8516   发布时间:2013-02-25 21:21:46.0
jfreechart柱状图中的数值怎么样横着显示?
我用jfreechart生成柱状图,在柱的顶端显示数值,怎么会显示竖起呢?比如123.就显示成
3
2
1

怎么样调成正常显示啊?

------解决方案--------------------------------------------------------
public class JFreeCharTest1 {

/**
* @param args
*/
public static CategoryDataset CreateCategory(){
DefaultCategoryDataset cds=new DefaultCategoryDataset();
cds.setValue(10,"开发人员","beyondsoft");
cds.setValue(18,"初级开发人员","beyondsoft");
cds.setValue(22,"高级开发人员","beyondsoft");
cds.setValue(26,"测试人员","hisoft");
cds.setValue(33,"黑盒测试人员","hisoft");
cds.setValue(44,"白盒测试人员","hisoft");
return cds;
}

public static JFreeChart getfreechart(){
JFreeChart chart=ChartFactory.createBarChart("IT市场形式分析","公司名","人数",CreateCategory(), PlotOrientation.VERTICAL, true, true, true);
CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
// 设置图表的纵轴和横轴org.jfree.chart.axis.CategoryAxis
NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
CategoryAxis domainAxis = categoryplot.getDomainAxis();
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体", Font.PLAIN, 20));
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
return chart;
}

public static void main(String[] args) {

ChartFrame frame=new ChartFrame("IT市场形式分析",getfreechart());
frame.pack();
frame.setVisible(true);
}
}
参考下吧。
------解决方案--------------------------------------------------------

Java code
JFreeChart chart = ChartFactory.createBarChart("企业风险度等级统计图", // 图表标题                "企业风险度等级", // 目录轴的显示标签                "企业风险度等级个数", // 数值轴的显示标签                getPillarDateSet(riskLevelList, sum), // 数据                // PlotOrientation.HORIZONTAL, //图表方向水平                PlotOrientation.VERTICAL, // 图表方向垂直                true, // 是否显示图例                false, // 是否显示工具提示                false // 是否生成URL                );        // 设置标题及标题字体        chart.setTitle(new TextTitle("企业风险度等级统计图",                new Font("宋体", Font.BOLD, 18)));        //设置图例文字        chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 12));        // 获取柱状图plot对象        CategoryPlot plot = (CategoryPlot) chart.getPlot();        // 设置柱型的颜色        plot.getRenderer().setSeriesPaint(0, Color.blue);        plot.setNoDataMessage("抱歉,没有查到相关的数据...");        // 取得横轴        CategoryAxis categoryAxis = plot.getDomainAxis();        // 设置横轴的字体        categoryAxis.setLabelFont(new Font("sans-serif", Font.BOLD, 18));        // 设置分类标签以45度倾斜        // categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);        // 设置分类标签字体        categoryAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 15));        // 取得纵轴        NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();        // 设置纵轴的字体        numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 18));                BarRenderer3D renderer = new BarRenderer3D();        // 显示每个柱的数值,并修改该数值的字体属性        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());        renderer.setBaseItemLabelsVisible(true);        renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(                ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));        renderer.setItemLabelAnchorOffset(10D);        //renderer.setBaseOutlinePaint(Color.BLACK);        // 设置wall的颜色        for (int i = 0; i < riskLevelList.size(); i++) {            RiskLevel risk = riskLevelList.get(i);            String color[] = risk.getColor().split(",");            renderer.setSeriesPaint(                    i,                    new Color(Integer.parseInt(color[0]), Integer                            .parseInt(color[1]), Integer.parseInt(color[2])));        }        // 设置每种风险的平行柱的之间距离        renderer.setItemMargin(0.1);        // 显示每个柱的数值,并修改该数值的字体属性        plot.setRenderer(renderer);        // 设置背景透明度(0~1)        plot.setBackgroundAlpha(0.9f);        ChartRenderingInfo info = new ChartRenderingInfo(                new StandardEntityCollection());        String filename = ServletUtilities.saveChartAsPNG(chart, 700, 650,                info, request.getSession());        mapMessage = ChartUtilities.getImageMap("map0", info);        src = request.getContextPath() + "/servlet/DisplayChart?filename="                + filename;