生成股票走势图jfreechart

    技术2022-05-12  4

     

    1.所需要的jar包  jfreechar-1.0.10.jar

    2.生成图的class 方法:

     

    package data.pub.jfree; import java.awt.Color; import java.awt.RenderingHints; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.DateAxis; import org.jfree.chart.axis.DateTickUnit; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.SegmentedTimeline; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.Marker; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYItemRenderer; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.time.Minute; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.xy.XYDataset; import org.jfree.ui.LengthAdjustmentType; import org.jfree.ui.RectangleAnchor; import org.jfree.ui.TextAnchor; import common.dataAccess.util.As; import common.dataAccess.util.FileUtils; import common.dataAccess.util.Property; import common.dataAccess.util.ResourceUtils; import data.pub.index.IndexTodayMin; import data.pub.util.DateUtils; /**  * 指数日内走势图  * @author yyao  */ public class IndexRtChart{     /**      *      */     private static final long serialVersionUID = 1L;     private static int stye = 0;     private static double min;     private static double max;     private static double close;     public static JFreeChart getChart(List<Map<String, String>> data) {         return createChart(getPreClose(data), createDatasetBackgroud(data));     }     private static JFreeChart createChart(double preClose,XYDataset datasetBack) {         JFreeChart chart = ChartFactory.createXYAreaChart(                 "",                 "", "",                 datasetBack,                 PlotOrientation.VERTICAL,                 true, // legend                 true, // tool tips                 false // URLs                 );         chart.setBackgroundPaint(ChartColors.TABLE_BACKGROUND_outside);         chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);         XYPlot plot = (XYPlot) chart.getPlot();         plot.setBackgroundPaint(ChartColors.BARCHART_BACKGROUND);         plot.setOutlinePaint(ChartColors.PLOT_GRIDDING);         plot.setDomainGridlinesVisible(true);         plot.setForegroundAlpha(0.5f);         ChartCommons.setPlotLineColor(plot);         //        plot.setRangeAxisLocation(0, AxisLocation.BOTTOM_OR_RIGHT);// 左边轴移到右边显示         ValueAxis domainAxis = new DateAxis("");         domainAxis.setLowerMargin(0.00001);         domainAxis.setUpperMargin(0.001);         plot.setDomainAxis(domainAxis);                 ValueAxis range = new NumberAxis();         range.setLowerBound(getMin());         range.setUpperBound(getMax());         plot.setRangeAxis(range);         XYItemRenderer renderer = plot.getRenderer();         renderer.setSeriesPaint(0, ChartColors.Market_FILL); //阴影色         ChartCommons.setXAxis(plot);         ChartCommons.setYAxis(plot);         //处理时间轴 过滤非交易时段 x 轴  1801 *倍数控制横向显示         SegmentedTimeline timeline = new SegmentedTimeline(SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE, 36, 60);         timeline.setBaseTimeline(SegmentedTimeline.newMondayThroughFridayTimeline());         timeline.addException(12600000, 17600000);         ((DateAxis) domainAxis).setTimeline(timeline);         ((DateAxis) domainAxis).setTickUnit(                 new DateTickUnit(                 DateTickUnit.SECOND, 2701, new SimpleDateFormat("HH:mm")));                 ((DateAxis) domainAxis).setMaximumDate(DateUtils.parseDate("197001011500", "yyyyMMddhhmm"));         ((DateAxis) domainAxis).setMinimumDate(DateUtils.parseDate("197001010930", "yyyyMMddhhmm"));         //Line renderer         XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer();         renderer1.setSeriesPaint(0, ChartColors.Market_LINE_1);         renderer1.setSeriesLinesVisible(0, true);         renderer1.setSeriesShapesVisible(0, false);         renderer1.setBaseShapesVisible(true);         renderer1.setBaseShapesFilled(true);         plot.setRenderer(1, renderer1);         plot.setDataset(1, (TimeSeriesCollection)datasetBack);         //标记昨日收盘价         Marker target = new ValueMarker(preClose);         target.setLabelOffsetType(LengthAdjustmentType.EXPAND);         target.setPaint(Color.BLACK);         target.setLabelAnchor(RectangleAnchor.TOP_RIGHT);         target.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);         plot.addRangeMarker(target);         chart.removeLegend();         //Legend //        LegendTitle legend = chart.getLegend(); //        legend.setMargin(new RectangleInsets(2, 2, 2, 2)); //        legend.setFrame(new BlockBorder()); //        legend.setBorder(0, 0, 0, 0); //        legend.setItemPaint(new Color(0x666666)); //        legend.setItemFont(new Font("SimSun", Font.PLAIN, 12)); //        BlockContainer container = new BlockContainer(new BorderArrangement()); //        container.add(legend, RectangleEdge.LEFT); //        container.add(new EmptyBlock(270, 0));//值越小 //        CompositeTitle legends = new CompositeTitle(container); //        legends.setPosition(RectangleEdge.TOP); //        chart.addSubtitle(legends); //        chart.removeSubtitle(chart.getSubtitle(0));         return chart;     }     //主线&&阴影     private static XYDataset createDatasetBackgroud(List<Map<String, String>> data) {         String name = "昨日收盘价";         TimeSeries series1 = new TimeSeries(name);         SimpleDateFormat format = new SimpleDateFormat("hhmm");         List<Double> list = new ArrayList<Double>();         for (int i = 0; i < data.size(); i++) {             try {             Map<String, String> hashmap = data.get(i);             if (isNotNull(hashmap.get("close"))) {                 list.add(Double.parseDouble(hashmap.get("close").toString()));             }             String tradetime = hashmap.get("trad_time");             String today_open = hashmap.get("close");             Date date = format.parse(tradetime);             series1.addOrUpdate(new Minute(date), Double.parseDouble(today_open));             } catch (Exception e) {                 e.printStackTrace();             }         }         setMin(list);         setMax(list);         TimeSeriesCollection dataset = new TimeSeriesCollection(series1);         return dataset;     }         //昨日收盘价     private static Double getPreClose(List<Map<String, String>> data) {         if (data.size() <=0) return null;         Double preClose = Double.parseDouble(data.get(0).get("pre_close"));         return preClose;     }         /*      * 验证数据是否为空      */     public static boolean isNotNull(String str) {         if (str == null || "".equals(str) || "null".equalsIgnoreCase(str) || "N/A".equals(str)) {             return false;         }         return true;     }         //处理Y轴最高点和最低点     public static double getMin() {         return min;     }     public static void setMin(List<Double> list) {         double min = Collections.min(list);         if (getClose() > 0.0 && min > getClose()) {             min = getClose();             min = min - min * 0.005;         } else {             min = min - min * 0.005;         }         IndexRtChart.min = min;     }     public static double getMax() {         return max;     }     public static void setMax(List<Double> list) {         double max = Collections.max(list);         if (max < getClose()) {             max = getClose();             max = max * 0.005 + max;         } else {             max = max * 0.005 + max;         }         IndexRtChart.max = max;     }     public static int getStye() {         return stye;     }     public static void setStye(int stye) {         IndexRtChart.stye = stye;     }     public static double getClose() {         return close;     }     public static void setClose(double close) {         IndexRtChart.close = close;     }         /*      * 生成走势图--大图      * 500*300      */     public static String get_pic_big(List<Map<String,String>> chartData,String security_code){         String picUrl = "";         if(chartData.size() > 0){             //调用画图接口             JFreeChart jchart = getChart(chartData);             String filePath = ResourceUtils.getPicPath();                 picUrl = filePath + security_code + "b" + ".png";             //生成PNG             File chartfile = new File(picUrl);             try {                 ChartUtilities.saveChartAsPNG(chartfile, jchart, 500, 300, null);                             } catch (IOException e) {                 e.printStackTrace();             }         }         return picUrl;     }         /*      * 生成走势图--小图      * 183*114      */     public static String get_pic_small(List<Map<String,String>> chartData,String security_code){         String picUrl = "";         if(chartData.size() > 0){             //调用画图接口             JFreeChart jchart = getChart(chartData);             String filePath = ResourceUtils.getPicPath();                         picUrl = filePath + security_code + "s" + ".png";             //生成PNG             File chartfile = new File(picUrl);             try {                 ChartUtilities.saveChartAsPNG(chartfile, jchart, 213, 133, null);                             } catch (IOException e) {                 e.printStackTrace();             }         }         return picUrl;     }             /**      * 指数的当天分钟走势图,每天早起08点初始化      */     public static void careat_index_chart()     {         Properties pro         = Property.getProperties(ResourceUtils.getChartPath());         String index_code      = pro.getProperty("chart_index_code");         String[] index_codes   = index_code.split(";");                 for(int i=0;i<index_codes.length;i++){//循环生成指数走势图             String security_code = index_codes[i];                                List<Map<String, String>> data_list = get_data(security_code);             if(data_list!=null && data_list.size()!=0)             {                 get_pic_small(data_list,security_code);//生成小图                 get_pic_big(data_list,security_code);//生成大图             }                     }     }         private static List<Map<String, String>>  get_data(String index_code)     {         List<Map<String, String>> index_list =  new ArrayList<Map<String, String>>();         List<IndexTodayMin> list_temp        = IndexTodayMin.get_list();                 for(int i=0;i<list_temp.size();i++)         {             Map<String,String> map = new HashMap<String,String>();             //String key_id = (list_temp.get(i)).getSecurity_code() + (list_temp.get(i)).getTrad_time();             if(index_code.equals(list_temp.get(i).getSecurity_code()))             {                 map.put("security_code", list_temp.get(i).getSecurity_code());                 map.put("trad_time", list_temp.get(i).getTrad_time());                 map.put("pre_close", ""+list_temp.get(i).getPreClose());                 map.put("close", ""+list_temp.get(i).getClose());                 index_list.add(map);             }         }         return index_list;     }     /*      *  测试方法      */     public static void main(String[] args) {                        /*DBHandler handler2 = DBHandler.getORADBHandler();         try         {             chartData = AccessUtils.select("INDEX_CHART_TEMP", null, handler2);         }         finally         {             handler2.close();         }                 //调用画图接口          JFreeChart jchart = getChart(chartData);         try {             ChartPanel panel = new ChartPanel(jchart);             JFrame frame = new JFrame();             frame.add(panel);             frame.setSize(500, 400);             RefineryUtilities.centerFrameOnScreen(frame);             frame.setVisible(true);         } catch (Exception e) {             e.printStackTrace();         }         //生成PNG         File chartfile = new File("D://399300"+ ".png");         try {             ChartUtilities.saveChartAsPNG(chartfile, jchart, 500, 300, null);         } catch (IOException e) {             e.printStackTrace();         }                */                        careat_index_chart();         System.out.println("end!!!!!!");             } }

     

     

    3.需要引入的页面:

     

    package data.pub.jfree; import java.awt.Color; import java.awt.GradientPaint; public class ChartColors {     // public     public static Color KCHART_UP = new Color(0xCC0033);     public static Color KCHART_DOWN = new Color(0x00A1FD);     public static Color KCHART_LINE_5 = new Color(0x010101);     public static Color KCHART_LINE_10 = new Color(0x0000FD);     public static Color KCHART_LINE_20 = new Color(0xFF00CC);     public static GradientPaint Market_FILL = new GradientPaint(0.0f, 0.0f, new Color(0xDDE9FD), 0.0f, 130.0f, new Color(0xDDE9FD), true);     public static Color Market_LINE_1 = new Color(0x006699);     public static Color Market_LINE_2 = new Color(0xFF9900);     public static Color Market_LINE_3 = new Color(0x339900);     public static Color Market_LINE_4 = new Color(0xCC3366);     public static Color Market_LINE_5 = new Color(0x996699);     public static Color Market_LINE_6 = new Color(0x999999);     public static Color Market_TABLE_BACKGROUND_inside = new Color(0xD8D8D8);     public static Color Market_BAR_1 = new Color(0x5081AC);     public static Color TABLE_BACKGROUND = new Color(0xE1E1E1);     public static Color TABLE_BACKGROUND_outside = new Color(0xFFFFFF);     public static Color TABLE_BACKGROUND_inside = new Color(0xE1E1E1);     public static Color TABLE_0_LINE = new Color(0x999999);     public static Color FILL_AREA = new Color(0xFFFFFF);     public static Color FILL_LINE = new Color(0x336799);     public static Color TICK_LABEL = new Color(0x323232);     public static Color TABLE_LINE = new Color(0xA2C1FF);     public static GradientPaint FUND_EA_BAR_UP = new GradientPaint(0.0f, 0.0f, new Color(0xCC3300), 0.0f, 0.0f, new Color(0xF08879), false);     public static GradientPaint FUND_EA_BAR_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0x339900), 0.0f, 0.0f, new Color(0x99DF66), false);     public static Color SHADE_FROM = new Color(0x94B8FF);     public static Color SHADE_TO = new Color(0x538DFE);     public static Color JYYC_O1 = new Color(0x00A2FF);     public static Color JYYC_O2 = new Color(0x3266CC);     public static Color JYYC_O3 = new Color(0xFF7A78);     public static Color JYYC_O4 = new Color(0xFF5E5B);     public static Color MARKET_THYSZBZ_O1 = Color.RED;//new Color(0x00A2FF);     public static Color MARKET_THYSZBZ_O2 = Color.BLUE;//new Color(0x3266CC);     public static Color MARKET_THYSZBZ_O3 = Color.GREEN;//new Color(0x3266CC);     public static Color MARKET_THYSZBZ_BACK_O1 = Color.RED;//new Color(0xFF7A78);     public static Color MARKET_THYSZBZ_BACK_O2 = Color.BLUE;//new Color(0xFF5E5B);     public static Color MARKET_THYSZBZ_BACK_O3 = Color.GREEN;//new Color(0xFF5E5B);     public static Color JYYC_UP_OUT = new Color(0x5982D0);     public static Color JYYC_DOWN_OUT = new Color(0xBF0400);     public static Color DASHED = new Color(0xD3D3D3);     public static Color BAR_UP = new Color(0x7AA7FF);     public static Color BAR_DOWN = new Color(0xFF5E5B);     public static GradientPaint HFA6_BAR_UP_2 = new GradientPaint(0.0f, 8.0f, new Color(0xB2D6DE), 0.0f, 0.0f, new Color(0x006699), false);     public static GradientPaint HFA6_BAR_UP = new GradientPaint(0.0f, 8.0f, new Color(0x006699), 0.0f, 0.0f, new Color(0xB2D6DE), false);     public static GradientPaint HFA6_BAR_DOWN = new GradientPaint(0.0f, 8.0f, new Color(0xFE9B04), 0.0f, 0.0f, new Color(0xFECA63), false);     public static GradientPaint RV_DOWN_CO = new GradientPaint(0.0f, 8.0f, new Color(0xCC3401), 0.0f, 0.0f, new Color(0xEF8676), false);     public static GradientPaint RV_UP_CO = new GradientPaint(0.0f, 8.0f, new Color(0xFE9B04), 0.0f, 0.0f, new Color(0xFECA63), false);     public static Color MARKET_BAR_DOWN = new Color(0x7AA7FF);     public static Color MARKET_BAR_UP = new Color(0xFF5E5B);     public static Color BAR_UP_FRAME = new Color(0x3266C);     public static Color BAR_DOWN_FRAME = new Color(0xA20300);     public static Color HFA6_BAR_UP_FRAME = new Color(0x006699);     public static Color HFA6_BAR_DOWN_FRAME = new Color(0xCC3300);     public static Color THREE_LINE_01 = new Color(0x006699);     public static Color THREE_LINE_02 = new Color(0xFF9900);     public static Color THREE_LINE_03 = new Color(0x339900);     public static Color FOUR_LINE_01 = new Color(0xCC0033);     public static Color FOUR_LINE_02 = new Color(0x3266CC);     public static Color FOUR_LINE_03 = new Color(0x2B912D);     public static Color FOUR_LINE_04 = new Color(0xFFC600);     public static GradientPaint FIVE_BAR_01 = new GradientPaint(0.0f, 0.0f, new Color(0x1975A2), 0.0f, 0.0f, new Color(0xB2D6DE), false);     public static GradientPaint FIVE_BAR_02 = new GradientPaint(0.0f, 0.0f, new Color(0xF9A508), 0.0f, 0.0f, new Color(0xF6EF8F), false);     public static GradientPaint FIVE_BAR_03 = new GradientPaint(0.0f, 0.0f, new Color(0x9FCC00), 0.0f, 0.0f, new Color(0xC9CC00), false);     public static GradientPaint FIVE_BAR_04 = new GradientPaint(0.0f, 0.0f, new Color(0xF35C8E), 0.0f, 0.0f, new Color(0xFEAAAB), false);     public static GradientPaint FIVE_BAR_05 = new GradientPaint(0.0f, 0.0f, new Color(0x9A97C9), 0.0f, 0.0f, new Color(0xDCDCDE), false);     /**      * 行业资金流量图 超大宗 大宗 非大宗      */     public static Color HYZJLL_UP_01 = new Color(0xBD3102);     public static Color HYZJLL_UP_02 = new Color(0xE2684C);     public static Color HYZJLL_UP_03 = new Color(0xF7B6AC);     public static Color HYZJLL_DOWN_01 = new Color(0x226501);     public static Color HYZJLL_DOWN_02 = new Color(0x69BF36);     public static Color HYZJLL_DOWN_03 = new Color(0xB9EA95);     public static GradientPaint FIVE_BAR_01_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0xB2D6DE), 0.0f, 0.0f, new Color(0x1975A2), false);     public static GradientPaint FIVE_BAR_02_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0xF6EF8F), 0.0f, 0.0f, new Color(0xF9A508), false);     public static GradientPaint FIVE_BAR_03_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0x9DCC00), 0.0f, 0.0f, new Color(0x9FCC00), false);     public static GradientPaint FIVE_BAR_04_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0xFEAAAB), 0.0f, 0.0f, new Color(0xF35C8E), false);     public static GradientPaint FIVE_BAR_05_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0xDCDCDE), 0.0f, 0.0f, new Color(0x9A97C9), false);     public static Color FIVE_BAR_OUT_LINE_01 = new Color(0x006699);     public static Color FIVE_BAR_OUT_LINE_02 = new Color(0xFE9900);     public static Color FIVE_BAR_OUT_LINE_03 = new Color(0x339900);     public static Color FIVE_BAR_OUT_LINE_04 = new Color(0xCC3366);     public static Color FIVE_BAR_OUT_LINE_05 = new Color(0x996699);     public static Color FHFA_BAR_05 = new Color(0x00C15F);     public static Color RV_BAR_01 = new Color(0x3266CC);     //local     public static Color AQR_LINE_01 = new Color(0xD75E86);     public static Color AQR_LINE_02 = new Color(0x006699);     public static Color AQR_LINE_03 = new Color(0x339900);     public static Color AQR_LINE_04 = new Color(0xFF9900);     public static GradientPaint AQR_BAR_01 = new GradientPaint(0.0f, 0.0f, new Color(0xCC3300), 0.0f, 0.0f, new Color(0xF08879), false);     public static Color AQR_BAR_02 = new Color(0xFFFF66);     public static GradientPaint AQR_BAR_03 = new GradientPaint(0.0f, 0.0f, new Color(0x339900), 0.0f, 0.0f, new Color(0x99DF66), false);     public static Color LEGEND_BORDER = new Color(0x919191);     public static Color DDIS_BAR_UP = new Color(0x3266CC);     public static Color DDIS_BAR_DOWN = new Color(0xCC0033);     public static Color BETA_POINT = new Color(0x006699);     public static Color BETA_NEW_POINT = new Color(0xFF0000);     public static Color BETA_TABLE = new Color(0xA2C1FF);     public static Color BETA_LINE = new Color(0xAED79A);     public static Color GIM_LINE = new Color(0x006699);     public static Color GIM_LINE_VWAP = new Color(0xFF9900);     public static GradientPaint GIM_BAR_UP = new GradientPaint(0.0f, 0.0f, new Color(0xCC3300), 0.0f, 0.0f, new Color(0xF08879), false);     public static GradientPaint GIM_BAR_DOWN = new GradientPaint(0.0f, 0.0f, new Color(0x99DF66), 0.0f, 0.0f, new Color(0x339900), false);     public static GradientPaint GIM_BAR_DOWN_02 = new GradientPaint(0.0f, 0.0f, new Color(0x339900), 0.0f, 0.0f, new Color(0x99DF66), false);     public static Color GM_BAR_01 = new Color(0x3266CC);     public static Color GM_BAR_02 = new Color(0xCC0033);     public static Color GM_LINE_01 = new Color(0x006699);     public static Color GM_LINE_02 = new Color(0xCC00CC);     public static Color GM_LINE_03 = new Color(0xFF9900);     public static Color GM_LINE_VWAP = new Color(0xCC3366);     public static Color WACC_PIE_03 = new Color(0xB4D5E8);     public static Color HS_lINE_01 = new Color(0x3266CC);     public static Color HS_lINE_02 = new Color(0xCD00C9);     public static Color HS_PLANE_01 = new Color(0xFFA8A8);     public static Color HS_PLANE_02 = new Color(0xAAF3AA);     public static Color JGPJTJ_LINE = new Color(0x2D6191);     public static Color JGPJTJ_FILL = new Color(0xC1D0EF);     /*饼图颜色*/     private static Color PIE_01 = new Color(0xFB8873);     private static Color PIE_02 = new Color(0xD199CA);     private static Color PIE_03 = new Color(0xFDA965);     private static Color PIE_04 = new Color(0xC0DC8E);     private static Color PIE_05 = new Color(0xFEE679);     private static Color PIE_06 = new Color(0xB3D5E7);     private static Color PIE_07 = new Color(0x73A79F);     private static Color PIE_08 = new Color(0xD3C57D);     private static Color PIE_09 = new Color(0xB3C1DD);     private static Color PIE_10 = new Color(0xF0C26C);     private static Color PIE_11 = new Color(0x79C7A0);     private static Color PIE_12 = new Color(0xFEA33D);     private static Color PIE_13 = new Color(0xC8676E);     private static Color PIE_14 = new Color(0x95A289);     private static Color PIE_15 = new Color(0xA3D881);     private static Color PIE_16 = new Color(0x8A7264);     private static Color PIE_17 = new Color(0x85A789);     private static Color PIE_18 = new Color(0xE3B7DA);     private static Color PIE_19 = new Color(0xCF9B64);     private static Color PIE_20 = new Color(0xB0B5CD);     private static Color PIE_21 = new Color(0xA394BE);     private static Color PIE_22 = new Color(0xD67EAE);     public static Color[] PIE_COLORS = {         PIE_01, PIE_02, PIE_03, PIE_04, PIE_05,         PIE_06, PIE_07, PIE_08, PIE_09, PIE_10,         PIE_11, PIE_12, PIE_13, PIE_14, PIE_15,         PIE_16, PIE_17, PIE_18, PIE_19, PIE_20,         PIE_21, PIE_22,};     /*柱体渐变开始颜色01*/     static Color BARSHADEBEG_01 = new Color(0x006699);     /*柱体渐变结束颜色01*/     static Color BARSHADEEND_01 = new Color(0xC2E0E4);     /*柱体渐变开始颜色02*/     static Color BARSHADEBEG_02 = new Color(0x99CCCC);     /*柱体渐变结束颜色02*/     static Color BARSHADEEND_02 = new Color(0xE6F2F9);     /*柱体上部边框颜色*/     public static Color BAR_SHADE_BORDER = new Color(0x006699);     /*柱体渐变颜色01*/     public static GradientPaint BARCHART_GRADIENTPAINT_01 = new GradientPaint(0.0f, 0.0f, BARSHADEBEG_01, 0.0f, 0.0f, BARSHADEEND_01, false);     /*柱体渐变颜色02*/     public static GradientPaint BARCHART_GRADIENTPAINT_02 = new GradientPaint(0.0f, 0.0f, BARSHADEBEG_02, 0.0f, 0.0f, BARSHADEEND_02, false);     /*柱体PLOT背景颜色*/     public static Color BARCHART_BACKGROUND = new Color(0xFFFFFF);     /*纵向网格颜色*/     public static Color BARCHART_GRIDDING_Y = new Color(0xBBBBBB);     /*横向网格颜色*/     public static Color BARCHART_GRIDDING_X = new Color(0xBBBBBB);     /*PLOT边框颜色*/     public static Color PLOT_GRIDDING = new Color(0xBBBBBB);     /*线图颜色 第一根线*/     public static Color LINE_COLOR_01 = new Color(0x006699);     public static Color LINE_COLOR_02 = new Color(0xFF9900);     public static Color LINE_COLOR_03 = new Color(0x339900);     public static Color LINE_COLOR_04 = new Color(0xCC3366);     public static Color LINE_COLOR_05 = new Color(0x996699); }

     

     

     

     

     

    package data.pub.jfree; import java.awt.Color; import java.awt.Font; import java.awt.GradientPaint; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.Plot; import org.jfree.chart.plot.XYPlot; /**  * Chart统一处理类 包括xAxis yAxis BackGround Gridline  * @author yyao  *  */ public class ChartCommons {     /**      * 设置plot背景颜色渐变      * set default color to black      * @param plot      */     protected static void setBackGroudVerticalGradual(Plot plot) {         setBackGroudVerticalGradual(plot, Color.black);     }     protected static void setBackGroudVerticalGradual(Plot plot, Color toColor) {         GradientPaint gradientpaint =                 new GradientPaint(0.0F, 0.0F, toColor, 0.0F, 0.0F, new Color(0xF1, 0xF1, 0xF1), true);         plot.setBackgroundPaint(gradientpaint);     }     protected static void setBackGroudVerticalGradual(Plot plot, Color fromColor, Color toColor) {         GradientPaint gradientpaint =                 new GradientPaint(-10.0F, -10.0F, toColor, 0.0F, 0.0F, fromColor, true);         plot.setBackgroundPaint(gradientpaint);     }     /**      * 设置网格颜色 XYPlot      * @param plot      * @param color      */     protected static void setPlotLineColor(XYPlot plot, Color color) {         plot.setDomainGridlinePaint(color); //网格线纵向颜色         plot.setRangeGridlinePaint(color); //网格线横向颜色     }     /**      * 设置网格颜色 CategoryPlot      * @param plot      * @param color      */     protected static void setPlotLineColor(CategoryPlot plot, Color color) {         plot.setDomainGridlinePaint(color); //网格线纵向颜色         plot.setRangeGridlinePaint(color); //网格线横向颜色     }     /**      * 设置网格颜色 按照默认的颜色 包括X,Y      * @param plot      */     protected static void setPlotLineColor(CategoryPlot plot) {         plot.setRangeGridlinesVisible(true);         plot.setRangeGridlinePaint(ChartColors.BARCHART_GRIDDING_Y);         plot.setDomainGridlinesVisible(true);         plot.setDomainGridlinePaint(ChartColors.BARCHART_GRIDDING_X);     }     /**      * 设置网格颜色 按照默认的颜色 包括X,Y      * @param plot      */     protected static void setPlotLineColor(XYPlot plot) {         plot.setRangeGridlinesVisible(true);         plot.setRangeGridlinePaint(ChartColors.BARCHART_GRIDDING_Y);         plot.setDomainGridlinesVisible(true);         plot.setDomainGridlinePaint(ChartColors.BARCHART_GRIDDING_X);     }     /**      * 设置坐标轴线的颜色      * @param plot      * @param color      */     protected static void setTickLabelPaint(XYPlot plot, Color color) {         plot.getRangeAxis().setTickLabelPaint(color);         plot.getDomainAxis().setTickLabelPaint(color);     }     /**      * 设置Y坐标轴的属性      * @param plot      */     protected static void setYAxis(XYPlot plot) {         NumberAxis vn = (NumberAxis) plot.getRangeAxis();         //vn.setNumberFormatOverride(new DecimalFormat("0.0%"));         /*y轴说明文字*/         vn.setTickLabelPaint(new Color(0x666666));         vn.setTickLabelFont(new Font("Arial", Font.PLAIN, 11));         /*y轴标签颜色*/         vn.setLabelPaint(new Color(0xBBBBBB));         /*y轴线的颜色*/         vn.setAxisLinePaint(new Color(0xBBBBBB));         /*y轴线Mark颜色*/         vn.setTickMarkPaint(new Color(0xBBBBBB)); //        vn.setAxisLineStroke(new BasicStroke(0.0F));     }     protected static void setYAxis(CategoryPlot plot) {         NumberAxis vn = (NumberAxis) plot.getRangeAxis();         //vn.setNumberFormatOverride(new DecimalFormat("0.0%"));         /*y轴说明文字*/         vn.setTickLabelPaint(new Color(0x666666));         vn.setTickLabelFont(new Font("Arial", Font.PLAIN, 11));         /*y轴标签颜色*/         vn.setLabelPaint(new Color(0xBBBBBB));         /*y轴线的颜色*/         vn.setAxisLinePaint(new Color(0xBBBBBB));         /*y轴线Mark颜色*/         vn.setTickMarkPaint(new Color(0xBBBBBB)); //        vn.setAxisLineStroke(new BasicStroke(0.0F));     }     /**      * 设置X轴属性      * @param plot      */     protected static void setXAxis(XYPlot plot) {         ValueAxis vas = ((XYPlot) plot).getDomainAxis();         /*x轴字的颜色*/         vas.setTickLabelPaint(new Color(0x666666));         vas.setTickLabelFont(new Font("Arial", Font.PLAIN, 11));         /*x轴标签颜色*/         vas.setLabelPaint(new Color(0xBBBBBB));         /*x轴线的颜色*/         vas.setAxisLinePaint(new Color(0xBBBBBB));         /*y轴线Mark颜色*/         vas.setTickMarkPaint(new Color(0xBBBBBB)); //        vas.setAxisLineStroke(new BasicStroke(0.0F));     }     protected static void setXAxis(CategoryPlot plot) {         CategoryAxis vas = ((CategoryPlot) plot).getDomainAxis();         /*x轴字的颜色*/         vas.setTickLabelPaint(new Color(0x666666));         vas.setTickLabelFont(new Font("Arial", Font.PLAIN, 11));         /*x轴标签颜色*/         vas.setLabelPaint(new Color(0xBBBBBB));         /*x轴线的颜色*/         vas.setAxisLinePaint(new Color(0xBBBBBB));         /*x轴线Mark颜色*/         vas.setTickMarkPaint(new Color(0xBBBBBB)); //        vas.setAxisLineStroke(new BasicStroke(0.0F));     } }

     


    最新回复(0)