永发信息网

JFreeChart 柱状图 柱子上如何显示百分比

答案:1  悬赏:10  手机版
解决时间 2021-05-03 10:57

<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.sql.*" import="java.util.*" import="java.awt.*"
 import="org.jfree.chart.title.TextTitle,org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import="org.jfree.chart.ChartFactory,

org.jfree.chart.JFreeChart,

org.jfree.chart.plot.PlotOrientation,

org.jfree.chart.servlet.ServletUtilities,

org.jfree.data.category.CategoryDataset,

org.jfree.data.general.DatasetUtilities,

org.jfree.chart.plot.*,

org.jfree.chart.labels.*,

org.jfree.chart.renderer.category.BarRenderer3D,

java.awt.*,

org.jfree.ui.*,

org.jfree.chart.axis.AxisLocation,org.jfree.chart.title.TextTitle,org.jfree.chart.axis.CategoryAxis,org.jfree.chart.axis.NumberAxis"%>


<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>">

  <title>My JSP 'result.jsp' starting page</title>

  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

 </head>

 <body>
  <%
  String area=new String( request.getParameter("area").getBytes("8859_1"),"GB2312");
  
  
   Connection con = null;
   Statement stat = null;
   Statement stat2 = null;
    
   
   String sql = null;
   String sql2=null;
      
   ResultSet rs = null;
   ResultSet rs2= null;
     
   try {
    Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
    String url = "jdbc:db2://172.16.1.61:50000/CNCIC";
    String u = "db2inst1";
    String password = "db2inst1";
    con = DriverManager.getConnection(url, u, password);
    stat = con.createStatement(
      java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
      java.sql.ResultSet.CONCUR_READ_ONLY);
      stat2 = con.createStatement(
      java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
      java.sql.ResultSet.CONCUR_READ_ONLY);
           
     
      

    sql="select count(1) as count from cncic.toupiaoforguonei where q1='浙江' and q3='A'";//总投票数
    sql2 = "select count(1) as count2 from cncic.toupiaoforguonei where q1='浙江' and q3='B'";//q1问题
           
      rs= stat.executeQuery(sql);
         int totle=0;
         if(rs.next()){
         totle=rs.getInt("count");
         }
               rs2=stat2.executeQuery(sql2);
               int q2=0;
               if(rs2.next()){
               q2=rs2.getInt("count2");
               }
                           
             
            
            
     DefaultCategoryDataset dataset = new DefaultCategoryDataset();
           dataset.addValue(totle, "Q1", "0.80元/斤以下");
          dataset.addValue(q2, "Q1", "0.80-0.90元/斤"); 
                                 
                      
                  
                    JFreeChart chart =ChartFactory.createBarChart3D("浙江地区","浙江地区","点击量",dataset,PlotOrientation.VERTICAL, false, false, false);
                    
      BarRenderer3D renderer = new BarRenderer3D();

              renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

              renderer.setBaseItemLabelsVisible(true);

             renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));

              renderer.setItemLabelAnchorOffset(10D);

               renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

              renderer.setItemLabelsVisible(true);
             
                    CategoryPlot plot = chart.getCategoryPlot();
                     Font font = new Font("宋体", Font.BOLD, 16);
                     TextTitle title = new TextTitle("您认为2010年开秤初期的棉籽价格是多少", font);
 chart.setTitle(title); //标题
 
 NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
 CategoryAxis domainAxis = plot.getDomainAxis();

        domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 10)); 

 

 domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); 

 

 numberaxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12)); 

 

 numberaxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); 

 

 plot.setRenderer(renderer);

            
                    String filename = ServletUtilities.saveChartAsPNG(chart, 800, 600, null, session);
                   String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
                   %>
                   <img src="<%= graphURL %>" width=800 height=600 border=0 usemap="#<%= filename %>">
                  
                   <%
   } catch (Exception e) {
    e.printStackTrace();
   } finally {
             rs.close();
             rs2.close();
             rs3.close();
             rs4.close();
               rs5.close();
                 rs6.close();
                   rs7.close();
                     rs8.close();
                       rs9.close();
                     //    rs10.close();
                                         
             stat.close();
             stat2.close();
              stat3.close();
               stat4.close();
                 stat5.close();
                   stat6.close();
                     stat7.close();
                       stat8.close();
                         stat9.close();
                        //   stat10.close();
                                                          
             con.close();
   }
  %>


 </body>
</html>
现在显示的是数字!我想知道如何让他既能显示数字又能显示百分比

最佳答案
CategoryPlot plot = (CategoryPlot) chart.getCategoryPlot();
BarRenderer3D customBarRenderer = (BarRenderer3D) plot.getRenderer();
//设定柱子上面的颜色
customBarRenderer.setSeriesPaint(0, Color.decode("#24F4DB")); // 给series1 Bar
customBarRenderer.setSeriesPaint(1, Color.decode("#7979FF")); // 给series2 Bar
customBarRenderer.setSeriesPaint(2, Color.decode("#FF5555")); // 给series3 Bar
customBarRenderer.setSeriesPaint(3, Color.decode("#F8D661")); // 给series4 Bar
customBarRenderer.setSeriesPaint(4, Color.decode("#F284DC")); // 给series5 Bar
customBarRenderer.setSeriesPaint(5, Color.decode("#00BF00")); // 给series6 Bar
customBarRenderer.setSeriesOutlinePaint(0,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(1,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(2,Color.BLACK); //边框为黑色
customBarRenderer.setSeriesOutlinePaint(3,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(4,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(5,Color.BLACK); //边框为黑色
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
windows 7好用么
有哪位懂法律的朋友来帮下忙。谢谢了
太原市有那些美甲店?需要详细的介绍?
怎么样忘掉以前的自己呀!
为啥一困眼睛就睁不开了?
这电脑配置能模拟ps2吗?
牙痛有什麽妙招吗?
信用卡欠两千多就要坐牢么?
中超排名傍
itouch4 的cpu和iphone4的一样吗?
问下,我的CS1.6僵尸,我进不去啊
友情纪念语录
怎么保存更新的皮肤
泉州哪里招美容学徒
有谁知道《逆天》这个游戏可不可以在网上玩啊
推荐资讯
什么生意最挣钱?
8.15还有没送永久S车的活动了?
深圳宝安到莆田涵江的汽车要几点到呢。
要怎样可以做好面试啊
ABABAB(猜周杰伦的一首歌名)
宠物 精品或是普通 有什么区别吗?
手机内存容量是什么,通常说的计算机内存大小
广州市区还有什么好玩的地方?
佘诗曼演过的古装电影
是艾弗森技不如科比,还是命不好
我买了河西区的房子,户口怎么转
09年的松茸是什么价位
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?