Changeset 151


Ignore:
Timestamp:
Jan 23, 2014, 9:05:12 AM (8 years ago)
Author:
b.hoekman@…
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaLCMSTools/src/export/svg/ExportMassSpectraToSVG.java

    r141 r151  
    1818import org.jfree.chart.JFreeChart;
    1919import org.jfree.chart.axis.NumberAxis;
     20import org.jfree.chart.axis.ValueAxis;
    2021import org.jfree.chart.plot.PlotOrientation;
    2122import org.jfree.chart.plot.XYPlot;
     23import org.jfree.chart.renderer.xy.XYItemRenderer;
     24import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
     25import org.jfree.data.xy.XYDataset;
    2226import org.jfree.data.xy.XYSeries;
    2327import org.jfree.data.xy.XYSeriesCollection;
     
    3438       
    3539        /**
     40         * Pretty much a special exporter inorder to overlay selected points on a MassSpectra!!
     41         *
     42         * @param fileName
     43         * @param lineMassSpectra
     44         * @param scatterMassSpectra
     45         */
     46        public void writeSVG(String fileName, MassSpectraC lineMassSpectra, MassSpectraC scatterMassSpectra) {
     47               
     48                double minA = lineMassSpectra.getFirstMass();
     49                double maxA = lineMassSpectra.getLastMass();
     50               
     51                double minB = scatterMassSpectra.getFirstMass();
     52                double maxB = scatterMassSpectra.getLastMass();
     53               
     54                double max = maxA;
     55                double min = minA;
     56               
     57                if(minB < min) {
     58                        min = minB;
     59                }
     60                if(maxB > max) {
     61                        max = maxB;
     62                }
     63               
     64               
     65               
     66//              // Create a single plot containing both the scatter and line
     67                XYPlot plot = new XYPlot();
     68
     69                /* SETUP SCATTER */
     70
     71                // Create the scatter data, renderer, and axis
     72                XYDataset collection1 = getXYSeries(scatterMassSpectra);
     73                XYItemRenderer renderer1 = new XYLineAndShapeRenderer(false, true);   // Shapes only
     74                ValueAxis domain1 = new NumberAxis("Domain1");
     75                ValueAxis range1 = new NumberAxis("Range1");
     76               
     77                domain1.setAutoRange(true);
     78                domain1.setLowerBound(min);
     79                domain1.setUpperBound(max);
     80
     81
     82                // Set the scatter data, renderer, and axis into plot
     83                plot.setDataset(0, collection1);
     84                plot.setRenderer(0, renderer1);
     85                plot.setDomainAxis(0, domain1);
     86                plot.setRangeAxis(0, range1);
     87
     88                // Map the scatter to the first Domain and first Range
     89                plot.mapDatasetToDomainAxis(0, 0);
     90                plot.mapDatasetToRangeAxis(0, 0);
     91
     92                /* SETUP LINE */
     93
     94                // Create the line data, renderer, and axis
     95                XYDataset collection2 = getXYSeries(lineMassSpectra);
     96                XYItemRenderer renderer2 = new XYLineAndShapeRenderer(true, false);   // Lines only
     97                ValueAxis domain2 = new NumberAxis("Domain2");
     98                ValueAxis range2 = new NumberAxis("Range2");
     99               
     100                domain2.setAutoRange(true);
     101                domain2.setLowerBound(min);
     102                domain2.setUpperBound(max);
     103               
     104
     105                // Set the line data, renderer, and axis into plot
     106                plot.setDataset(1, collection2);
     107                plot.setRenderer(1, renderer2);
     108                plot.setDomainAxis(1, domain2);
     109                plot.setRangeAxis(1, range2);
     110
     111                // Map the line to the second Domain and second Range
     112//              plot.mapDatasetToDomainAxis(1, 1);
     113//              plot.mapDatasetToRangeAxis(1, 1);
     114               
     115                plot.mapDatasetToDomainAxis(1, 0);
     116                plot.mapDatasetToRangeAxis(1, 0);
     117
     118                // Create the chart with the plot and a legend
     119                JFreeChart chart = new JFreeChart("Multi Dataset Chart", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
     120               
     121                Rectangle bounds = new Rectangle();
     122                bounds.setBounds(0, 0, 1600, 1000);   
     123               
     124                if(exportSVG) {
     125                        exportChartAsSVG(chart,bounds,fileName);
     126                }
     127                if(exportPNG) {
     128                        exportChartAsPNG(chart,bounds,fileName);
     129                }
     130        }
     131       
     132        /**
    36133         * Writes a MassSpectraC to a bar diagram
    37134         *
     
    41138         * @param massSpectra
    42139         */     
    43         public void writeSVG(String fileName, MassSpectraP massSpectra, boolean continuousPlot) {
     140        public void writeSVG(String fileName, MassSpectraP massSpectra, boolean lineChart, boolean scatterChart) {
    44141               
    45142                XYSeriesCollection xySerieCollection = getXYSeries(massSpectra);
    46143               
    47                 JFreeChart chart = getChart(xySerieCollection,continuousPlot);
     144                JFreeChart chart = getChart(xySerieCollection,lineChart,scatterChart);
    48145               
    49146                Rectangle bounds = new Rectangle();
     
    66163         * @param massSpectra
    67164         */     
    68         public void writeSVG(String fileName, MassSpectraC massSpectra, boolean continuousPlot) {
     165        public void writeSVG(String fileName, MassSpectraC massSpectra, boolean lineChart, boolean scatterChart) {
    69166               
    70167                XYSeriesCollection xySerieCollection = getXYSeries(massSpectra);
    71168               
    72                 JFreeChart chart = getChart(xySerieCollection,continuousPlot);
     169                JFreeChart chart = getChart(xySerieCollection,lineChart,scatterChart);
    73170               
    74171                Rectangle bounds = new Rectangle();
     
    85182        }
    86183       
    87         private JFreeChart getChart(XYSeriesCollection xySerieCollection, boolean continuous) {                 
     184        private JFreeChart getChart(XYSeriesCollection xySerieCollection, boolean lineChart, boolean scatterChart) {                   
    88185                JFreeChart chart = null;
    89186                String title = "Mass Trace Spectra";
    90187               
    91                 if(continuous == true) {
     188                if(lineChart == true) {
    92189                        chart = ChartFactory.createXYLineChart(title,"Mass (da)","Intensitie",
    93190                            xySerieCollection,
     
    97194                            false
    98195                        );
     196                } else if(scatterChart) {
     197                        chart = ChartFactory.createScatterPlot(title,"Mass (da)","Intensitie",
     198                            xySerieCollection,
     199                            PlotOrientation.VERTICAL,
     200                            true,
     201                            true,
     202                            false
     203                           );
    99204                } else {
    100205                        chart = ChartFactory.createXYBarChart(title,"Mass (da)",false,"Intensitie",
Note: See TracChangeset for help on using the changeset viewer.