1,27 → 1,27 |
package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components; |
|
import com.orsoncharts.legend.StandardLegendBuilder; |
import jomm.utils.BytesUtils; |
import jomm.utils.MimeTypeGuesser; |
import org.jfree.chart.ChartFactory; |
import org.jfree.chart.ChartPanel; |
import org.jfree.chart.JFreeChart; |
import org.jfree.chart.axis.CategoryAxis; |
import org.jfree.chart.axis.ValueAxis; |
import org.jfree.chart.plot.*; |
import org.jfree.chart.renderer.category.BarRenderer; |
import org.jfree.chart.renderer.category.CategoryItemRenderer; |
import org.jfree.chart.renderer.category.GroupedStackedBarRenderer; |
import org.jfree.data.KeyToGroupMap; |
import org.jfree.data.category.CategoryRangeInfo; |
import org.jfree.chart.axis.NumberAxis; |
import org.jfree.chart.block.BlockBorder; |
import org.jfree.chart.labels.ItemLabelAnchor; |
import org.jfree.chart.labels.ItemLabelPosition; |
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; |
import org.jfree.chart.plot.CategoryPlot; |
import org.jfree.chart.plot.PiePlot; |
import org.jfree.chart.plot.PlotOrientation; |
import org.jfree.chart.plot.RingPlot; |
import org.jfree.chart.renderer.category.StackedBarRenderer; |
import org.jfree.chart.renderer.category.StandardBarPainter; |
import org.jfree.data.category.DefaultCategoryDataset; |
import org.jfree.data.general.DefaultPieDataset; |
import org.jfree.ui.GradientPaintTransformType; |
import org.jfree.ui.RectangleInsets; |
import org.jfree.ui.StandardGradientPaintTransformer; |
import org.jfree.ui.TextAnchor; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
import pt.estgp.estgweb.utils.Globals; |
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent; |
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent; |
import pt.estgp.estgweb.web.controllers.utils.FileUploaded; |
|
30,6 → 30,8 |
import java.awt.image.BufferedImage; |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.text.DecimalFormat; |
import java.text.NumberFormat; |
import java.util.List; |
|
/** |
58,6 → 60,20 |
data.addValue(new Double((int)(temp.getAprovados1720Percent()*100)/100),"Aprovados 17-20",""+temp.ano + "º Ano"); |
} |
|
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent()*100)/100),"Aprovados 10-13","2º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent()*100)/100),"Aprovados 14-16","2º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1720Percent()*100)/100),"Aprovados 17-20","2º Ano"); |
} |
|
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent()*100)/100),"Aprovados 10-13","3º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent()*100)/100),"Aprovados 14-16","3º Ano"); |
data.addValue(new Double((32*100)/100),"Aprovados 17-20","3º Ano"); |
} |
|
|
|
JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null,data, PlotOrientation.VERTICAL,true,false,false); |
|
CategoryPlot plot = chart.getCategoryPlot(); |
65,18 → 81,37 |
chart.setPadding(chartRectangle); |
plot.setBackgroundPaint(Color.WHITE); |
CategoryAxis axis = plot.getDomainAxis(); |
ValueAxis axis2 = plot.getRangeAxis(); |
NumberAxis axis2 = (NumberAxis) plot.getRangeAxis(); |
NumberFormat pctFormat = new DecimalFormat("#'%'"); |
axis.setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
axis2.setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
BarRenderer renderer = (BarRenderer) plot.getRenderer(); |
renderer.setSeriesPaint(0, Color.ORANGE); |
renderer.setSeriesPaint(1, Color.YELLOW); |
renderer.setSeriesPaint(2, Color.GREEN); |
renderer.setMaximumBarWidth(.35); |
axis2.setNumberFormatOverride(pctFormat); |
|
Color brown = new Color(237,125,49); |
Color yellow = new Color(255,192,0); |
Color green = new Color(112,173,71); |
|
StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer(); |
renderer.setGradientPaintTransformer(null); |
plot.setRangeGridlinePaint(Color.GRAY); |
plot.setRangeGridlinesVisible(true); |
plot.setRangeGridlineStroke(new BasicStroke(1.0f)); |
renderer.setSeriesPaint(0, brown); |
renderer.setSeriesPaint(1, yellow); |
renderer.setSeriesPaint(2, green); |
renderer.setMaximumBarWidth(.20); |
|
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",pctFormat)); |
renderer.setBaseItemLabelsVisible(true); |
ItemLabelPosition position = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.HALF_ASCENT_CENTER); |
renderer.setBasePositiveItemLabelPosition(position); |
renderer.setBaseItemLabelFont(new Font("Helvetica",Font.PLAIN,30)); |
|
chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN,30)); |
chart.getLegend().setFrame(BlockBorder.NONE); |
|
|
|
BufferedImage image = chart.createBufferedImage( 300*4, 200*4); |
String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.File.separator + tempName; |
java.io.File output = new java.io.File(pathGraficoTiposAlunos); |