package com.shihua.bgdata.chart_sp.imp; import java.awt.Color; import java.awt.Font; import java.awt.GradientPaint; import java.awt.RenderingHints; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; import java.util.ListIterator; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.block.BlockBorder; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.CategoryItemRenderer; import org.jfree.chart.title.LegendTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.AbstractDataset; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleEdge; import org.jfree.util.SortOrder; import com.shihua.bgdata.chart.IJFreeChartProvider; import com.shihua.bgdata.chart.JFreeChartUtil; import com.shihua.bgdata.dto.comp.FinanceIndexDTO; import com.shihua.bgdata.server.picture.handler.PictureHandle; public class FinanceIndexChartProImp implements IJFreeChartProvider,Serializable{ private AbstractDataset dataSet; public JFreeChartUtil createChart() { JFreeChartUtil util = new JFreeChartUtil(); util.setWidth(450); util.setHeight(243); JFreeChart jfreechart = ChartFactory.createLineChart("", "", "", (CategoryDataset) dataSet, PlotOrientation.VERTICAL,true, true, false); jfreechart.getRenderingHints().put( RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); // 绘制渐进色 GradientPaint gp = new GradientPaint(0, 0, PictureHandle.DEFAULT_COLORS[0], 0, util.getHeight(), PictureHandle.DEFAULT_COLORS[1]); jfreechart.setBackgroundPaint(gp); jfreechart.getPlot().setBackgroundPaint(gp); CategoryPlot cp = jfreechart.getCategoryPlot(); cp.setColumnRenderingOrder(SortOrder.ASCENDING); CategoryAxis categoryaxis = cp.getDomainAxis(); categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); categoryaxis.setAxisLinePaint(Color.WHITE); categoryaxis.setLabelPaint(Color.WHITE); categoryaxis.setTickMarkPaint(Color.WHITE); categoryaxis.setTickLabelPaint(Color.WHITE); ValueAxis rAxis = cp.getRangeAxis(); rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12)); rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); rAxis.setAxisLinePaint(Color.WHITE); rAxis.setLabelPaint(Color.WHITE); rAxis.setTickMarkPaint(Color.WHITE); rAxis.setTickLabelPaint(Color.WHITE); CategoryItemRenderer render = cp.getRenderer(); render.setSeriesPaint(0, PictureHandle.KIND_COLORS[3]); render.setSeriesPaint(1, PictureHandle.KIND_COLORS[1]); render.setSeriesPaint(2, PictureHandle.KIND_COLORS[4]); render.setSeriesPaint(3, PictureHandle.KIND_COLORS[2]); LegendTitle legend = jfreechart.getLegend(); legend.setItemPaint(Color.WHITE); legend.setHorizontalAlignment(HorizontalAlignment.LEFT); legend.setPosition(RectangleEdge.TOP); legend.setBackgroundPaint(gp); legend.setBorder(BlockBorder.NONE); util.setFreeChart(jfreechart);
return util; } public void setDataSet(List list, int type) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); if (list != null && !list.isEmpty()) { for (ListIterator lt = list.listIterator(); lt.hasNext();) { FinanceIndexDTO dto = (FinanceIndexDTO) lt.next(); switch (type) { case 1: dataset.addValue(dto.getEquitycapitalrate(), "净资产收益率", dto .getEnddate());break; case 2: dataset.addValue(BigDecimal.ONE.divide(BigDecimal.ONE.subtract((dto.getDebtcapitalrate().divide(new BigDecimal("100")))), 2,BigDecimal.ROUND_HALF_UP), "所有者权益乘数", dto.getEnddate()); break; case 3: dataset.addValue(dto.getReturnontotalassets(), "资产收益率", dto.getEnddate());break; case 4: dataset.addValue(dto.getSaleprofitrate(), "销售净利率", dto.getEnddate());break; case 5: dataset.addValue(dto.getTotalassetcyclerate(), "资产周转率", dto.getEnddate());break; case 6: dataset.addValue(dto.getTotaldata(), "沃尔评价法得分", dto.getEnddate());break; case 7: dataset.addValue(dto.getTotaldata(), "综合评价法得分", dto.getEnddate());break; } } } this.dataSet = dataset; } public AbstractDataset getDataSet() { return dataSet; } public void setDataSet(AbstractDataset dataSet) { this.dataSet = dataSet; } public JFreeChartUtil createChart(int type) { return null; } }
|