List of usage examples for org.jfree.ui LengthAdjustmentType EXPAND
LengthAdjustmentType EXPAND
To view the source code for org.jfree.ui LengthAdjustmentType EXPAND.
Click Source Link
From source file:org.jfree.chart.demo.MarkerDemo2.java
private static JFreeChart createChart(XYDataset xydataset) { JFreeChart jfreechart = ChartFactory.createXYLineChart("Marker Demo 2", "X", "Temperature", xydataset, PlotOrientation.VERTICAL, false, true, false); XYPlot xyplot = (XYPlot) jfreechart.getPlot(); xyplot.setDomainGridlinePaint(Color.lightGray); xyplot.setDomainGridlineStroke(new BasicStroke(1.0F)); xyplot.setRangeGridlinePaint(Color.lightGray); xyplot.setRangeGridlineStroke(new BasicStroke(1.0F)); xyplot.setRangeTickBandPaint(new Color(240, 240, 240)); PeriodAxis periodaxis = new PeriodAxis(null, new Hour(0, 30, 6, 2005), new Hour(23, 30, 6, 2005)); PeriodAxisLabelInfo aperiodaxislabelinfo[] = new PeriodAxisLabelInfo[2]; aperiodaxislabelinfo[0] = new PeriodAxisLabelInfo(org.jfree.data.time.Hour.class, new SimpleDateFormat("HH")); aperiodaxislabelinfo[1] = new PeriodAxisLabelInfo(org.jfree.data.time.Day.class, new SimpleDateFormat("dd-MMM")); periodaxis.setLabelInfo(aperiodaxislabelinfo); xyplot.setDomainAxis(periodaxis);//from w w w .j a va2s .com ValueAxis valueaxis = xyplot.getRangeAxis(); valueaxis.setRange(0.0D, 100D); XYItemRenderer xyitemrenderer = xyplot.getRenderer(); xyitemrenderer.setSeriesPaint(0, Color.green); xyitemrenderer.setSeriesStroke(0, new BasicStroke(2.0F)); ValueMarker valuemarker = new ValueMarker(80D); valuemarker.setLabelOffsetType(LengthAdjustmentType.EXPAND); valuemarker.setPaint(Color.red); valuemarker.setStroke(new BasicStroke(2.0F)); valuemarker.setLabel("Temperature Threshold"); valuemarker.setLabelFont(new Font("SansSerif", 0, 11)); valuemarker.setLabelPaint(Color.red); valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); valuemarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); xyplot.addRangeMarker(valuemarker); Hour hour = new Hour(18, 30, 6, 2005); Hour hour1 = new Hour(20, 30, 6, 2005); double d = hour.getFirstMillisecond(); double d1 = hour1.getFirstMillisecond(); IntervalMarker intervalmarker = new IntervalMarker(d, d1); intervalmarker.setLabelOffsetType(LengthAdjustmentType.EXPAND); intervalmarker.setPaint(new Color(150, 150, 255)); intervalmarker.setLabel("Automatic Cooling"); intervalmarker.setLabelFont(new Font("SansSerif", 0, 11)); intervalmarker.setLabelPaint(Color.blue); intervalmarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); intervalmarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); xyplot.addDomainMarker(intervalmarker, Layer.BACKGROUND); ValueMarker valuemarker1 = new ValueMarker(d, Color.blue, new BasicStroke(2.0F)); ValueMarker valuemarker2 = new ValueMarker(d1, Color.blue, new BasicStroke(2.0F)); xyplot.addDomainMarker(valuemarker1, Layer.BACKGROUND); xyplot.addDomainMarker(valuemarker2, Layer.BACKGROUND); return jfreechart; }
From source file:scheduler.benchmarker.manager.CreateStackedBarChart3D.java
public ChartPanel createChartPanel() { JFreeChart jfreechart = ChartFactory.createStackedBarChart3D(title, "Category", "Value", createDataset(), PlotOrientation.HORIZONTAL, true, true, false); jfreechart.setBackgroundPaint(new Color(214, 217, 223)); CustomBarRenderer cRenderer = new CustomBarRenderer(pluginColors); CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); ValueMarker marker = new ValueMarker(dataSource.getSumTotalTime()); marker.setLabel("CLASSIFICATION FINISH"); marker.setPaint(Color.RED);//from w ww . j a va 2 s . co m marker.setLabelPaint(Color.RED); marker.setLabelAnchor(RectangleAnchor.TOP_LEFT); marker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); marker.setLabelOffsetType(LengthAdjustmentType.EXPAND); marker.setLabelFont(new Font(Font.SERIF, Font.BOLD, 12)); categoryplot.addRangeMarker(marker, Layer.FOREGROUND); categoryplot.setFixedLegendItems(createCustomLegend()); categoryplot.setRenderer(cRenderer); cPanel = new ChartPanel(jfreechart, true); return cPanel; }
From source file:net.sf.maltcms.chromaui.foldChangeViewer.tasks.FoldChangeViewLoaderWorker.java
@Override public void run() { ProgressHandle handle = ProgressHandleFactory.createHandle("Creating fold change plot"); try {/*from w ww . j a va 2 s.c o m*/ handle.setDisplayName("Loading fold change elements");//+new File(this.files.getResourceLocation()).getName()); handle.start(5); handle.progress("Reading settings", 1); RTUnit rtAxisUnit = RTUnit.valueOf(sp.getProperty("rtAxisUnit", "SECONDS")); handle.progress("Retrieving data", 2); XYShapeRenderer renderer = new XYShapeRenderer() { @Override protected Paint getPaint(XYDataset dataset, int series, int item) { double x = dataset.getXValue(series, item); double y = dataset.getYValue(series, item); if (Math.abs(x) < 1.0) { Paint p = super.getPaint(dataset, series, item); if (p instanceof Color) { Color color = (Color) p; float[] values = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), new float[3]); Color hsb = new Color( Color.HSBtoRGB(values[0], (float) Math.max(0.1, values[1] - 0.9), values[2])); return new Color(hsb.getRed(), hsb.getGreen(), hsb.getBlue(), 64); } } return super.getPaint(dataset, series, item); } }; renderer.setAutoPopulateSeriesFillPaint(true); renderer.setAutoPopulateSeriesOutlinePaint(true); renderer.setBaseCreateEntities(true); handle.progress("Building plot", 3); XYPlot plot = new XYPlot(dataset, new NumberAxis("log2 fold change"), new NumberAxis("-log10 p-value"), renderer); BasicStroke dashed = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 5.0f, new float[] { 5.0f }, 0.0f); ValueMarker marker = new ValueMarker(-Math.log10(0.05), Color.RED, dashed); marker.setLabel("p-value=0.05"); marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); marker.setLabelOffset(new RectangleInsets(UnitType.ABSOLUTE, 0, 50, 10, 0)); marker.setLabelOffsetType(LengthAdjustmentType.EXPAND); marker.setLabelPaint(Color.LIGHT_GRAY); plot.addRangeMarker(marker); Font font1 = new Font("SansSerif", Font.PLAIN, 12); SelectionAwareXYTooltipGenerator tooltipGenerator = cvtc.getLookup() .lookup(SelectionAwareXYTooltipGenerator.class); if (tooltipGenerator == null) { tooltipGenerator = new SelectionAwareXYTooltipGenerator(tooltipGenerator) { @Override public String createSelectionAwareTooltip(XYDataset xyd, int i, int i1) { FoldChangeDataset dataset = (FoldChangeDataset) xyd; FoldChangeElement fce = dataset.getNamedElementProvider().get(i).get(i1); StringBuilder sb = new StringBuilder(); sb.append("<html>"); sb.append(fce.getPeakGroup().getMajorityDisplayName()); sb.append("<br>"); sb.append("log2 fold change="); sb.append(fce.getFoldChange()); sb.append("<br>"); sb.append("p-value="); sb.append(Math.pow(10, -fce.getPvalue())); sb.append("</html>"); return sb.toString(); } }; } tooltipGenerator.setXYToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset xyd, int i, int i1) { Comparable comp = xyd.getSeriesKey(i); double x = xyd.getXValue(i, i1); double y = xyd.getYValue(i, i1); StringBuilder sb = new StringBuilder(); sb.append("<html>"); sb.append(comp); sb.append("<br>"); sb.append("log2 fold change="); sb.append(x); sb.append("<br>"); sb.append("p-value="); sb.append(sb.append(Math.pow(10, -y))); sb.append("</html>"); return sb.toString(); } }); plot.getRenderer().setBaseToolTipGenerator(tooltipGenerator); handle.progress("Configuring plot", 4); configurePlot(plot, rtAxisUnit); final FoldChangeViewPanel cmhp = cvtc.getLookup().lookup(FoldChangeViewPanel.class); Range domainRange = null; Range valueRange = null; if (cmhp != null) { XYPlot xyplot = cmhp.getPlot(); if (xyplot != null) { ValueAxis domain = xyplot.getDomainAxis(); domainRange = domain.getRange(); ValueAxis range = xyplot.getRangeAxis(); valueRange = range.getRange(); } } if (domainRange != null) { plot.getDomainAxis().setRange(domainRange); } if (valueRange != null) { Logger.getLogger(getClass().getName()).info("Setting previous value range!"); } handle.progress("Adding plot to panel", 5); final XYPlot targetPlot = plot; SwingUtilities.invokeLater(new Runnable() { @Override public void run() { final FoldChangeViewPanel cmhp = cvtc.getLookup().lookup(FoldChangeViewPanel.class); cmhp.setPlot(targetPlot); cvtc.requestActive(); } }); } finally { handle.finish(); } }
From source file:grafix.graficos.eixos.Eixo.java
protected IntervalMarker gerarIntervalMarker(final MarcaGrafica m, JanelaGraficos janela) { try {/*from ww w . j a v a 2 s . c o m*/ IntervalMarker im = new IntervalMarker(m.getInicioNoGrafico(janela).getFirstMillisecond(), m.getFimNoGrafico(janela).getFirstMillisecond()); im.setLabelOffsetType(LengthAdjustmentType.EXPAND); im.setPaint(m.getCor()); im.setStroke(new BasicStroke(1.4f)); if (!m.getFim().equals(m.getInicio())) { im.setAlpha(.2f); im.setLabelFont(new Font("SansSerif", Font.BOLD, 11)); } else { im.setAlpha(.9f); im.setLabelFont(new Font("SansSerif", Font.PLAIN, 11)); } im.setLabel(m.getTag()); im.setLabelPaint(m.getCor()); im.setLabelAnchor(RectangleAnchor.TOP_LEFT); im.setLabelTextAnchor(TextAnchor.TOP_RIGHT); return im; } catch (Exception e) { return null; } }
From source file:pisco.batch.visu.BatchingChartFactory.java
protected static void makeDueDateMarkers(XYPlot plot, Batch[] batches, Paint[] palette) { for (int k = 0; k < batches.length; k++) { final List<BJob> jobs = batches[k].getJobs(); for (BJob job : jobs) { plot.addDomainMarker(createMarker(job.getDueDate(), "d" + job.getId(), (Color) palette[k], TextAnchor.TOP_CENTER, LengthAdjustmentType.EXPAND)); }/*w w w. jav a2s . co m*/ } }
From source file:ua.com.fielden.platform.example.swing.booking.BookingChartPanelExample.java
private static Marker createNowMarker(final Date now) { final ValueMarker valuemarker = new ValueMarker(now.getTime()); valuemarker.setLabelOffsetType(LengthAdjustmentType.EXPAND); valuemarker.setPaint(Color.BLACK); valuemarker.setLabel("Today"); valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); valuemarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); return valuemarker; }
From source file:grafix.graficos.eixos.Eixo.java
protected ValueMarker gerarRangeMarker(final MarcaGrafica m) { ValueMarker vm = new ValueMarker(m.getValor()); vm.setLabelOffsetType(LengthAdjustmentType.EXPAND); vm.setPaint(m.getCor());//from w w w.j av a2 s . c o m vm.setStroke(new BasicStroke(.5f)); vm.setAlpha(0.9f); vm.setLabel(m.getTag()); vm.setLabelFont(new Font("SansSerif", Font.PLAIN, 11)); vm.setLabelPaint(m.getCor()); vm.setLabelAnchor(RectangleAnchor.TOP_LEFT); vm.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); return vm; }
From source file:org.ash.gui.StackedChart.java
/** * Creates the chart.//from w w w .j a v a 2 s.c om * * @return the j free chart */ private JFreeChart createChart() { xAxis = new DateAxis("time"); xAxis.setDateFormatOverride(new SimpleDateFormat("HH:mm")); currentDate = new Date(); updatexAxisLabel(new Long(currentDate.getTime()).doubleValue()); chart = ChartFactory.createStackedXYAreaChart("Top activity", // chart title "X Value", // domain axis label "Active Sessions", // range axis label dataset, // data PlotOrientation.VERTICAL, // the plot orientation xAxis, false, // legend true, // tooltips false // urls ); plot = (XYPlot) chart.getPlot(); StackedXYAreaRenderer3 renderer = new StackedXYAreaRenderer3(); renderer.setRoundXCoordinates(true); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator("{0} ({1}, {2})", new SimpleDateFormat("HH:mm"), new DecimalFormat("0.0"))); plot.setRenderer(0, renderer); plot.getRangeAxis().setLowerBound(0.0); plot.getRangeAxis().setAutoRange(true); // add a labelled marker for the cpu_count thresholdMaxCpu = new ValueMarker(this.maxCpu); thresholdMaxCpu.setLabelOffsetType(LengthAdjustmentType.EXPAND); thresholdMaxCpu.setPaint(Color.red); thresholdMaxCpu.setStroke(new BasicStroke(1.0f)); thresholdMaxCpu.setLabel("Maximum CPU"); thresholdMaxCpu.setLabelFont(new Font("SansSerif", Font.PLAIN, 11)); thresholdMaxCpu.setLabelPaint(Color.red); thresholdMaxCpu.setLabelAnchor(RectangleAnchor.TOP_LEFT); thresholdMaxCpu.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); plot.addRangeMarker(thresholdMaxCpu); renderer.setSeriesPaint(0, Options.getInstance().getColor(Options.getInstance().getResource("cpuLabel.text")), true); renderer.setSeriesPaint(1, Options.getInstance().getColor(Options.getInstance().getResource("schedulerLabel.text")), true); renderer.setSeriesPaint(2, Options.getInstance().getColor(Options.getInstance().getResource("userIOLabel.text")), true); renderer.setSeriesPaint(3, Options.getInstance().getColor(Options.getInstance().getResource("systemIOLabel.text")), true); renderer.setSeriesPaint(4, Options.getInstance().getColor(Options.getInstance().getResource("concurrencyLabel.text")), true); renderer.setSeriesPaint(5, Options.getInstance().getColor(Options.getInstance().getResource("applicationsLabel.text")), true); renderer.setSeriesPaint(6, Options.getInstance().getColor(Options.getInstance().getResource("commitLabel.text")), true); renderer.setSeriesPaint(7, Options.getInstance().getColor(Options.getInstance().getResource("configurationLabel.text")), true); renderer.setSeriesPaint(8, Options.getInstance().getColor(Options.getInstance().getResource("administrativeLabel.text")), true); renderer.setSeriesPaint(9, Options.getInstance().getColor(Options.getInstance().getResource("networkLabel.text")), true); renderer.setSeriesPaint(11, Options.getInstance().getColor(Options.getInstance().getResource("queueningLabel.text")), true);//que renderer.setSeriesPaint(10, Options.getInstance().getColor(Options.getInstance().getResource("clusterLabel.text")), true);//cluster renderer.setSeriesPaint(12, Options.getInstance().getColor(Options.getInstance().getResource("otherLabel.text")), true); // Set format for x axis DateAxis axis = (DateAxis) plot.getDomainAxis(); axis.setDateFormatOverride(new SimpleDateFormat("HH:mm")); // Add legend to right LegendTitle legend = new LegendTitle(chart.getPlot()); BlockContainer wrapper = new BlockContainer(new BorderArrangement()); wrapper.setFrame(new BlockBorder(1.0, 1.0, 1.0, 1.0)); BlockContainer itemss = legend.getItemContainer(); itemss.setPadding(2, 10, 5, 2); wrapper.add(itemss); legend.setWrapper(wrapper); legend.setPosition(RectangleEdge.RIGHT); legend.setHorizontalAlignment(HorizontalAlignment.LEFT); chart.addSubtitle(legend); return chart; }
From source file:org.ash.history.TopActivityPreview.java
/** * Creates the chart./*from w w w. j av a 2 s .c om*/ * * @return the j free chart */ private JFreeChart createChart() { xAxis = new DateAxis("time"); xAxis.setLabel(null); chart = ChartFactory.createStackedXYAreaChart(this.title, // chart title "X Value", // domain axis label "Active Sessions", // range axis label dataset, // data PlotOrientation.VERTICAL, // the plot orientation xAxis, false, // legend true, // tooltips false // urls ); chart.getTitle() .setFont(new Font(TextTitle.DEFAULT_FONT.getFontName(), TextTitle.DEFAULT_FONT.getStyle(), 14)); plot = (XYPlot) chart.getPlot(); StackedXYAreaRenderer3 renderer = new StackedXYAreaRenderer3(); renderer.setRoundXCoordinates(true); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator("{0} ({1}, {2})", new SimpleDateFormat("HH:mm"), new DecimalFormat("0.0"))); plot.setRenderer(0, renderer); plot.getRangeAxis().setLowerBound(0.0); plot.getRangeAxis().setAutoRange(true); // add a labelled marker for the cpu_count thresholdMaxCpu = new ValueMarker(this.maxCpu); thresholdMaxCpu.setLabelOffsetType(LengthAdjustmentType.EXPAND); thresholdMaxCpu.setPaint(Color.red); thresholdMaxCpu.setStroke(new BasicStroke(1.0f)); thresholdMaxCpu.setLabel("Maximum CPU"); thresholdMaxCpu.setLabelFont(new Font("SansSerif", Font.PLAIN, 11)); thresholdMaxCpu.setLabelPaint(Color.red); thresholdMaxCpu.setLabelAnchor(RectangleAnchor.TOP_LEFT); thresholdMaxCpu.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); plot.addRangeMarker(thresholdMaxCpu); renderer.setSeriesPaint(0, Options.getInstance().getColor(Options.getInstance().getResource("cpuLabel.text")), true); renderer.setSeriesPaint(1, Options.getInstance().getColor(Options.getInstance().getResource("schedulerLabel.text")), true); renderer.setSeriesPaint(2, Options.getInstance().getColor(Options.getInstance().getResource("userIOLabel.text")), true); renderer.setSeriesPaint(3, Options.getInstance().getColor(Options.getInstance().getResource("systemIOLabel.text")), true); renderer.setSeriesPaint(4, Options.getInstance().getColor(Options.getInstance().getResource("concurrencyLabel.text")), true); renderer.setSeriesPaint(5, Options.getInstance().getColor(Options.getInstance().getResource("applicationsLabel.text")), true); renderer.setSeriesPaint(6, Options.getInstance().getColor(Options.getInstance().getResource("commitLabel.text")), true); renderer.setSeriesPaint(7, Options.getInstance().getColor(Options.getInstance().getResource("configurationLabel.text")), true); renderer.setSeriesPaint(8, Options.getInstance().getColor(Options.getInstance().getResource("administrativeLabel.text")), true); renderer.setSeriesPaint(9, Options.getInstance().getColor(Options.getInstance().getResource("networkLabel.text")), true); renderer.setSeriesPaint(11, Options.getInstance().getColor(Options.getInstance().getResource("queueningLabel.text")), true);//que renderer.setSeriesPaint(10, Options.getInstance().getColor(Options.getInstance().getResource("clusterLabel.text")), true);//cluster renderer.setSeriesPaint(12, Options.getInstance().getColor(Options.getInstance().getResource("otherLabel.text")), true); return chart; }
From source file:cn.InstFS.wkr.NetworkMining.UIs.TimeSeriesChart1.java
public static JFreeChart createChart2(ArrayList<DataItems> _nor_model, ArrayList<DataItems> _abnor_model, DataItems nor, DataItems abnor, Map<String, ArrayList<LinePos>> mapAB, String chartname, String protocol1, String protocol2) { XYDataset xydataset = createNormalDataset(nor, protocol1); JFreeChart jfreechart = ChartFactory.createXYLineChart(chartname, "", "", xydataset); jfreechart.getLegend().setVisible(false); XYPlot xyplot = (XYPlot) jfreechart.getPlot(); NumberAxis numberaxis = (NumberAxis) xyplot.getRangeAxis(); numberaxis.setAutoRangeIncludesZero(false); java.awt.geom.Ellipse2D.Double double1 = new java.awt.geom.Ellipse2D.Double(-4D, -4D, 6D, 6D); XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) xyplot.getRenderer(); // ??/*from w w w . j av a 2 s . c om*/ xylineandshaperenderer.setSeriesLinesVisible(0, true); xylineandshaperenderer.setBaseShapesVisible(false); xylineandshaperenderer.setSeriesShape(0, double1); xylineandshaperenderer.setSeriesPaint(0, Color.blue); xylineandshaperenderer.setSeriesFillPaint(0, Color.blue); xylineandshaperenderer.setSeriesOutlinePaint(0, Color.blue); xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(0.5F)); // ? // xylineandshaperenderer.setBaseItemLabelGenerator(new // StandardXYItemLabelGenerator()); // xylineandshaperenderer.setBaseItemLabelsVisible(true); int datasetcount0 = xyplot.getDatasetCount(); XYDataset xydataset1 = createNormalDataset(abnor, protocol2); // xydataset1. XYLineAndShapeRenderer xylineandshaperenderer1 = new XYLineAndShapeRenderer(); int datasetcount = xyplot.getDatasetCount(); xyplot.setDataset(datasetcount, xydataset1); xyplot.setRenderer(datasetcount, xylineandshaperenderer1); // ??? xylineandshaperenderer1.setBaseShapesVisible(false); // ?? xylineandshaperenderer1.setSeriesLinesVisible(0, true); xylineandshaperenderer1.setSeriesShape(0, double1); // xylineandshaperenderer1.setSeriesPaint(0, Color.green); xylineandshaperenderer1.setSeriesFillPaint(0, Color.green); xylineandshaperenderer1.setSeriesOutlinePaint(0, Color.green); xylineandshaperenderer1.setUseFillPaint(true); xylineandshaperenderer1.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); xylineandshaperenderer1.setSeriesStroke(0, new BasicStroke(0.5F)); // //? /* * for (int i = 0; i < _nor_model.size(); i++) { XYDataset xydataset2 = * createmodeDataset(_nor_model.get(i), "_nor_model" + i); * XYLineAndShapeRenderer xylineandshaperenderer2 = new * XYLineAndShapeRenderer(); xyplot.setDataset(i + 2, xydataset2); * xyplot.setRenderer(2 + i, xylineandshaperenderer2); // ??? * xylineandshaperenderer2.setBaseShapesVisible(false); // ?? * xylineandshaperenderer2.setSeriesLinesVisible(0, true); * xylineandshaperenderer2.setSeriesShape(0, double1); // * xylineandshaperenderer2.setSeriesPaint(0, Color.red); * xylineandshaperenderer2.setSeriesFillPaint(0, Color.red); * xylineandshaperenderer2.setSeriesOutlinePaint(0, Color.red); * xylineandshaperenderer2.setUseFillPaint(true); * xylineandshaperenderer2 .setBaseItemLabelGenerator(new * StandardXYItemLabelGenerator()); * xylineandshaperenderer2.setSeriesStroke(0, new BasicStroke(2.5F)); * * } for (int i = 0; i < _abnor_model.size(); i++) { XYDataset * xydataset3 = createmodeDataset(_abnor_model.get(i), "_abnor_model" + * i); XYLineAndShapeRenderer xylineandshaperenderer3 = new * XYLineAndShapeRenderer(); xyplot.setDataset(i + 2 + * _nor_model.size(), xydataset3); xyplot.setRenderer(i + 2 + * _nor_model.size(), xylineandshaperenderer3); // ??? * xylineandshaperenderer3.setBaseShapesVisible(false); // ?? * xylineandshaperenderer3.setSeriesLinesVisible(0, true); * xylineandshaperenderer3.setSeriesShape(0, double1); // * xylineandshaperenderer3.setSeriesPaint(0, Color.red); * xylineandshaperenderer3.setSeriesFillPaint(0, Color.red); * xylineandshaperenderer3.setSeriesOutlinePaint(0, Color.red); * xylineandshaperenderer3.setUseFillPaint(true); * xylineandshaperenderer3 .setBaseItemLabelGenerator(new * StandardXYItemLabelGenerator()); * xylineandshaperenderer3.setSeriesStroke(0, new BasicStroke(2.5F)); * * } */ // ?? // // ///////////////////////////////// // ? XYDataset xydataset4 = createLineDataset(nor, abnor, mapAB, xyplot); // ??y=1 ValueMarker valuemarker = new ValueMarker(1); // valuemarker.setLabelOffsetType(LengthAdjustmentType.EXPAND); valuemarker.setPaint(Color.black); // ? valuemarker.setStroke(new BasicStroke(1.0F)); // // valuemarker.setLabel(""); //? valuemarker.setLabelFont(new Font("SansSerif", 0, 11)); // ? valuemarker.setLabelPaint(Color.red); valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); valuemarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); xyplot.addRangeMarker(valuemarker); // // //jfreechart.getLegend().setVisible(true); return jfreechart; }