⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 symbolicxyplotdemo.java

📁 这是一个segy数据显示程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        plot.setDataset(1, series1);        plot.setRenderer(1, renderer2);        // make the chart...        final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true);        chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));        // and present it in a frame...        final JFrame frame = new ChartFrame(frameTitle, chart);        frame.pack();        RefineryUtilities.positionFrameRandomly(frame);        frame.show();    }    /**     * Displays an horizontally combined XYPlot with X and Y symbolic data.     *     * @param frameTitle  the frame title.     * @param data1  the dataset 1.     * @param data2  the dataset 2.     */    private static void displayXYSymbolicCombinedHorizontally(final String frameTitle,                                                              final XYDataset data1,                                                               final XYDataset data2) {        final String title = "Pollutant Horizontally Combined";        final String x1AxisLabel = "Contamination";        final String x2AxisLabel = "Type";        final String yAxisLabel = "Pollutant";        // combine the y symbolic values of the two data sets        final String[] combinedYSymbolicValues =            SampleXYSymbolicDataset.combineYSymbolicDataset((YisSymbolic) data1,                                                            (YisSymbolic) data2);        // make master dataset...        final CombinedDataset data = new CombinedDataset();        data.add(data1);        data.add(data2);        // decompose data...        final XYDataset series0 = new SubSeriesDataset(data, 0);        final XYDataset series1 = new SubSeriesDataset(data, 1);        JFreeChart chart = null;        // common horizontal and vertical axes        final SymbolicAxis hsymbolicAxis0            = new SymbolicAxis(x1AxisLabel, ((XisSymbolic) data1).getXSymbolicValues());        final SymbolicAxis hsymbolicAxis1            = new SymbolicAxis(x2AxisLabel, ((XisSymbolic) data2).getXSymbolicValues());        final SymbolicAxis symbolicAxis            = new SymbolicAxis(yAxisLabel, combinedYSymbolicValues);        // create main plot...        final CombinedRangeXYPlot mainPlot = new CombinedRangeXYPlot(symbolicAxis);        // add subplots...        final XYItemRenderer renderer = new StandardXYItemRenderer(            StandardXYItemRenderer.SHAPES, null        );        final XYPlot subplot0 = new XYPlot(series0, hsymbolicAxis0, null, renderer);        final XYPlot subplot1 = new XYPlot(series1, hsymbolicAxis1, null, renderer);        mainPlot.add(subplot0, 1);        mainPlot.add(subplot1, 1);        // make the top level JFreeChart object        chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true);        chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));        // and present it in a frame...        final JFrame frame = new ChartFrame(frameTitle, chart);        frame.pack();        RefineryUtilities.positionFrameRandomly(frame);        frame.show();    }    // ****************************************************************************    // * JFREECHART DEVELOPER GUIDE                                               *    // * The JFreeChart Developer Guide, written by David Gilbert, is available   *    // * to purchase from Object Refinery Limited:                                *    // *                                                                          *    // * http://www.object-refinery.com/jfreechart/guide.html                     *    // *                                                                          *    // * Sales are used to provide funding for the JFreeChart project - please    *     // * support us so that we can continue developing free software.             *    // ****************************************************************************        /**     * Vertically combined sample1 and sample2 and display it.     *     * @param frameTitle  the frame title.     * @param data1  the dataset 1.     * @param data2  the dataset 2.     */    private static void displayXYSymbolicCombinedVertically(final String frameTitle,                                                            final XYDataset data1,                                                             final XYDataset data2) {        final String title = "Pollutant Vertically Combined";        final String xAxisLabel = "Contamination and Type";        final String yAxisLabel = "Pollutant";        // combine the x symbolic values of the two data sets        final String[] combinedXSymbolicValues            = SampleXYSymbolicDataset.combineXSymbolicDataset((XisSymbolic) data1,                                                              (XisSymbolic) data2);        // make master dataset...        final CombinedDataset data = new CombinedDataset();        data.add(data1);        data.add(data2);        // decompose data...        final XYDataset series0 = new SubSeriesDataset(data, 0);        final XYDataset series1 = new SubSeriesDataset(data, 1);        // common horizontal and vertical axes        final SymbolicAxis hsymbolicAxis            = new SymbolicAxis(xAxisLabel, combinedXSymbolicValues);        final SymbolicAxis vsymbolicAxis0            = new SymbolicAxis(yAxisLabel, ((YisSymbolic) data1).getYSymbolicValues());        final SymbolicAxis vsymbolicAxis1            = new SymbolicAxis(yAxisLabel, ((YisSymbolic) data2).getYSymbolicValues());        // create the main plot...        final CombinedDomainXYPlot mainPlot = new CombinedDomainXYPlot(hsymbolicAxis);        // add the sub-plots...        final XYItemRenderer renderer = new StandardXYItemRenderer(            StandardXYItemRenderer.SHAPES, null        );        final XYPlot subplot0 = new XYPlot(series0, null, vsymbolicAxis0, renderer);        final XYPlot subplot1 = new XYPlot(series1, null, vsymbolicAxis1, renderer);        mainPlot.add(subplot0, 1);        mainPlot.add(subplot1, 1);        // make the chart...        final JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true        );        chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));        // and present it in a frame...        final JFrame frame = new ChartFrame(frameTitle, chart);        frame.pack();        RefineryUtilities.positionFrameRandomly(frame);        frame.show();    }    /**     * Transform an primitive array to an object array.     *     * @param arr  the array.     *     * @return an array.     */    private static Object toArray(final Object arr) {        if (arr == null) {            return arr;        }        final Class cls = arr.getClass();        if (!cls.isArray()) {            return arr;        }        Class compType = cls.getComponentType();        int dim = 1;        while (!compType.isPrimitive()) {            if (!compType.isArray()) {                return arr;            }            else {                dim++;                compType = compType.getComponentType();            }        }        final int[] length = new int[dim];        length[0] = Array.getLength(arr);        Object[] newarr = null;        try {            if (compType.equals(Integer.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Integer"), length);            }            else if (compType.equals(Double.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Double"), length);            }            else if (compType.equals(Long.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Long"), length);            }            else if (compType.equals(Float.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Float"), length);            }            else if (compType.equals(Short.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Short"), length);            }            else if (compType.equals(Byte.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Byte"), length);            }            else if (compType.equals(Character.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Character"), length);            }            else if (compType.equals(Boolean.TYPE)) {                newarr = (Object[]) Array.newInstance(Class.forName("java.lang.Boolean"), length);            }        }        catch (ClassNotFoundException ex) {            System.out.println(ex);        }        for (int i = 0; i < length[0]; i++) {            if (dim != 1) {                newarr[i] = toArray(Array.get(arr, i));            }            else {                newarr[i] = Array.get(arr, i);            }        }        return newarr;    }    /**     * Starting point for the application.     *     * @param args  ignored.     */    public static void main(final String[] args) {        final SampleXYSymbolicDataset s1 = createXYSymbolicSample1();        final SampleXYSymbolicDataset s2 = createXYSymbolicSample2();        displayXYSymbolic("Example 1", s1, "Pollutant", "contamination", "pollutant");        displayXYSymbolic("Example 2", s2, "Pollutant", "type", "pollutant");        displayXYSymbolicCombinedHorizontally("Example 3", (SampleXYSymbolicDataset) s1.clone(),                                                           (SampleXYSymbolicDataset) s2.clone());        displayXYSymbolicCombinedVertically("Example 4", (SampleXYSymbolicDataset) s1.clone(),                                                         (SampleXYSymbolicDataset) s2.clone());        displayXYSymbolicOverlaid("Example 5", (SampleXYSymbolicDataset) s1.clone(),                                               (SampleXYSymbolicDataset) s2.clone());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -