List of usage examples for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setBaseShapesFilled
public void setBaseShapesFilled(boolean flag)
From source file:userinterface.graph.Graph.java
/** * Initialises the GraphModel's series and canvas list. Also starts off the * graph update timer (one per chart)./*from w w w.j a v a2s. c o m*/ * * @param title * Title of the graph. */ public Graph(String title) { super(ChartFactory.createXYLineChart(title, "X", "Y", new XYSeriesCollection(), PlotOrientation.VERTICAL, true, true, false)); graphCache = new HashMap<SeriesKey, LinkedList<XYDataItem>>(); keyToSeries = new HashMap<SeriesKey, XYSeries>(); keyToGraphSeries = new HashMap<SeriesKey, SeriesSettings>(); graphTitle = new MultipleLineStringSetting("title", title, "The main title heading for the chart.", this, false); titleFont = new FontColorSetting("title font", new FontColorPair(new Font("SansSerif", Font.PLAIN, 14), Color.black), "The font for the chart's title", this, false); legendVisible = new BooleanSetting("legend visible?", new Boolean(true), "Should the legend, which displays all of the series headings, be displayed?", this, false); String[] choices = { "Left", "Right", "Bottom", "Top" }; legendPosition = new ChoiceSetting("legend position", choices, choices[RIGHT], "The position of the legend", this, false); legendFont = new FontColorSetting("legend font", new FontColorPair(new Font("SansSerif", Font.PLAIN, 11), Color.black), "The font for the legend", this, false); // Some easy references chart = super.getChart(); plot = chart.getXYPlot(); plot.setBackgroundPaint((Paint) Color.white); seriesCollection = (XYSeriesCollection) plot.getDataset(); xAxisSettings = new AxisSettings("X", true, this); yAxisSettings = new AxisSettings("Y", false, this); xAxisSettings.addObserver(this); yAxisSettings.addObserver(this); displaySettings = new DisplaySettings(this); displaySettings.addObserver(this); seriesList = new SeriesSettingsList(this); // create a regular XY line chart XYItemRenderer r = plot.getRenderer(); // if possible, try to match the old grapher if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r; renderer.setBaseShapesVisible(true); renderer.setBaseShapesFilled(true); renderer.setDrawSeriesLineAsPath(true); renderer.setAutoPopulateSeriesPaint(true); renderer.setAutoPopulateSeriesShape(true); } plot.setDrawingSupplier(new DefaultDrawingSupplier(SeriesSettings.DEFAULT_PAINTS, DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE, DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE, DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE, SeriesSettings.DEFAULT_SHAPES)); super.setPopupMenu(null); /* Make sure the graph resembles its default settings. */ updateGraph(); // schedule a periodic timer for graph updates new java.util.Timer().scheduleAtFixedRate(new GraphUpdateTask(), 0, // start now updateInterval); }
From source file:lucee.runtime.tag.Chart.java
private void setMarker(JFreeChart chart, Plot p) { if (!showmarkers) return;// w ww .j ava 2 s . c o m if (markersize < 1 || markersize > 100) markersize = 4; if (p instanceof XYPlot) { XYPlot xyp = (XYPlot) p; XYItemRenderer r = xyp.getRenderer(); if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer xyr = (XYLineAndShapeRenderer) r; xyr.setBaseShapesVisible(true); xyr.setBaseShapesFilled(true); int seriesCount = _series.size(); for (int i = 0; i < seriesCount; i++) { xyr.setSeriesShapesVisible(i, true); xyr.setSeriesItemLabelsVisible(i, true); xyr.setSeriesShape(i, ShapeUtilities.createDiamond(markersize)); xyr.setUseFillPaint(true); xyr.setBaseFillPaint(databackgroundcolor); } } } else if (p instanceof CategoryPlot) { CategoryPlot cp = (CategoryPlot) p; CategoryItemRenderer r = cp.getRenderer(); if (r instanceof LineAndShapeRenderer) { LineAndShapeRenderer lsr = (LineAndShapeRenderer) r; int seriesCount = _series.size(); for (int i = 0; i < seriesCount; i++) { lsr.setSeriesShapesVisible(i, true); lsr.setSeriesItemLabelsVisible(i, true); lsr.setSeriesShape(i, ShapeUtilities.createDiamond(markersize)); lsr.setUseFillPaint(true); lsr.setBaseFillPaint(databackgroundcolor); } } } }
From source file:edu.ucla.stat.SOCR.applications.demo.StockApplication.java
void updateGraph() { //System.out.println("UpdateGraph get called") // System.out.println("S0="+S0+" E="+E+" P="+P); calculate(choice);//from w w w .j av a 2 s. com XYSeriesCollection ds = createDataset(choice); JFreeChart chart = ChartFactory.createXYLineChart(title, // chart title xAxis, // x axis label yAxis, // y axis label ds, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips false // urls ); chart.setBackgroundPaint(Color.white); XYPlot subplot1 = (XYPlot) chart.getPlot(); XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) subplot1.getRenderer(); renderer1.setSeriesPaint(0, Color.red); renderer1.setSeriesPaint(1, Color.blue); renderer1.setSeriesPaint(2, Color.green); renderer1.setSeriesPaint(3, Color.gray); /* Shape shape = renderer1.getBaseShape(); renderer1.setSeriesShape(2, shape); renderer1.setSeriesShape(3, shape);*/ renderer1.setBaseLinesVisible(true); renderer1.setBaseShapesVisible(true); renderer1.setBaseShapesFilled(true); chartPanel = new ChartPanel(chart, false); chartPanel.setPreferredSize(new Dimension(CHART_SIZE_X, CHART_SIZE_Y)); upContainer = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(leftPanel), new JScrollPane(chartPanel)); this.getMainPanel().removeAll(); this.getMainPanel().add(new JScrollPane(upContainer), BorderLayout.CENTER); this.getMainPanel().validate(); // getRecordTable().setText("Any Explaination goes here."); // }
From source file:edu.ucla.stat.SOCR.chart.demo.SOCR_EM_MixtureModelChartDemo.java
/** * Creates a chart.// w w w. j a va 2s.co m * * @param dataset the data for the chart. * * @return a chart. */ // protected JFreeChart createChart(XYDataset dataset, double[][] polygons, int num_poly) { protected JFreeChart createChart(XYDataset[] dataset) { //System.out.println("createChart get called"); boolean legend = false; /*if (num_series>1&&segment_flag==false) legend = true;*/ // System.out.println("createchart: inde="+independentVarLength); // create the chart... JFreeChart chart = ChartFactory.createXYLineChart(chartTitle, // chart title "X", // x axis label "Y", // y axis label dataset[0], // data PlotOrientation.VERTICAL, legend, // include legend true, // tooltips false // urls ); //printDataset(dataset, num_series); // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART... chart.setBackgroundPaint(Color.white); // get a reference to the plot for further customisation... XYPlot subplot1 = (XYPlot) chart.getPlot(); subplot1.setBackgroundPaint(Color.lightGray); subplot1.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0)); subplot1.setDomainGridlinePaint(Color.white); subplot1.setRangeGridlinePaint(Color.white); XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) subplot1.getRenderer(); renderer1.setBaseLinesVisible(false); renderer1.setBaseShapesVisible(true); renderer1.setBaseShapesFilled(true); int[] num_group = new int[num_series]; Paint color_mainGroup = mEMexperiment[0].getColorOfMainGroup(); // use same color for all series if EM together // System.out.println("dataset0. seriescount="+dataset[0].getSeriesCount()+" itemcount="+dataset[0].getItemCount(0)); if (num_series == 1) for (int s = 0; s < dataset[0].getSeriesCount(); s++) { renderer1.setSeriesLinesVisible(s, false); renderer1.setSeriesShapesVisible(s, true); renderer1.setSeriesShapesFilled(s, true); renderer1.setSeriesShape(s, series_shapes[0]); // for the shape of the dots renderer1.setSeriesPaint(s, color_mainGroup); } // System.out.println("num_series="+num_series); // System.out.println("num_group="+num_group); // System.out.println("segment_flag="+segment_flag); if (legend) { LegendItemCollection legends_old = subplot1.getFixedLegendItems(); LegendItemCollection legends_new = new LegendItemCollection(); for (int s = 0; s < num_series; s++) { legends_new.add(legends_old.get(s)); } subplot1.setFixedLegendItems(legends_new); } //segment for (int s = 0; s < num_series; s++) { num_group[s] = mEMexperiment[s].getNumOfGroup(); } // System.out.println("num_group[0]="+num_group[0]); if (num_group[0] > 0 && segment_flag && (mixSelected == CG_MIX)) { Paint[] color_groups = mEMexperiment[0].getColorOfGroups(); for (int i = 0; i < num_group[0] - 1; i++) { //System.out.println("color "+ i +"=" + color_groups[i].toString()); renderer1.setSeriesPaint(i, color_groups[i]); } //System.out.println("color main ="+ color_mainGroup.toString()); renderer1.setSeriesPaint(nkSelected, color_mainGroup); } else renderer1.setBasePaint(color_mainGroup); // renderer1.setShape(series_shapes[0]); // subplot1.setDataset(0, dataset[0]); //System.out.println("setting renderer for " +0); // subplot1.setRenderer(0, renderer1); // System.out.println("SOCR_EM creatChart: pt0="+dataset.getXValue(0, 0)+ ","+dataset.getYValue(0, 0)); // change the auto tick unit selection to integer units only... NumberAxis rangeAxis = (NumberAxis) subplot1.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero(true); // rangeAxis.setUpperMargin(0); // rangeAxis.setLowerMargin(0); NumberAxis domainAxis = (NumberAxis) subplot1.getDomainAxis(); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); domainAxis.setAutoRangeIncludesZero(true); // domainAxis.setUpperMargin(0); // domainAxis.setLowerMargin(0); XYLineAndShapeRenderer[] renderer1a = new XYLineAndShapeRenderer[num_series]; if (num_series > 1) { for (int s = 0; s < num_series; s++) { // System.out.println("adding pt for series:"+s +": seriesCount "+ dataset[s].getSeriesCount()+"itemcount="+dataset[s].getItemCount(0)); renderer1a[s] = new XYLineAndShapeRenderer(); if (num_group[0] > 0 && segment_flag && (mixSelected == CG_MIX)) { Paint[] color_groups = mEMexperiment[0].getColorOfGroups(); for (int i = 0; i < num_group[0] - 1; i++) { //System.out.println("color "+ i +"=" + color_groups[i].toString()); renderer1a[s].setSeriesPaint(i, color_groups[i]); } //System.out.println("color main ="+ color_mainGroup.toString()); renderer1a[s].setSeriesPaint(nkSelected, color_mainGroup); } else renderer1a[s].setBasePaint(color_mainGroup); renderer1a[s].setBaseLinesVisible(false); renderer1a[s].setBaseShapesVisible(true); renderer1a[s].setBaseShapesFilled(true); renderer1a[s].setBaseShape(series_shapes[s]); // different shape of dots for each pair of input subplot1.setDataset(s, dataset[s]); // System.out.println("setting renderer for " +s); subplot1.setRenderer(s, renderer1a[s]); } } if (kernels != null) { /* System.out.println("draw kernels"); System.out.println("num_series="+num_series); System.out.println("nkSelected="+nkSelected);*/ XYLineAndShapeRenderer[][] renderer2 = new XYLineAndShapeRenderer[num_series][nkSelected]; for (int s = 0; s < num_series; s++) { Paint[] color_kernels = mEMexperiment[s].getColorOfKernels(); // System.out.println("SOCR_EM creatChart adding kernels:" +num_kernels+ "ws[0]="+ws[0]); for (int i = 0; i < nkSelected; i++) { // System.out.println("drawing kernel for series: "+s +" kernel:" +i); // System.out.println("SOCR_EM creatChart: kernel "+i+" pt0="+kernels[i].getXValue(0, 0)+","+kernels[i].getYValue(0, 0)); renderer2[s][i] = new XYLineAndShapeRenderer(); renderer2[s][i].setBaseStroke(series_strokes[s]); renderer2[s][i].setBaseLinesVisible(true); renderer2[s][i].setBaseShapesVisible(false); // renderer2[s][i].setShapesFilled(false); renderer2[s][i].setBasePaint(color_kernels[i]); subplot1.setDataset(num_series - 1 + s * num_series + i + 1, kernels[s][i]); // System.out.println("setting renderer for " +(num_series-1+s*num_series+i+1)); subplot1.setRenderer(num_series - 1 + s * num_series + i + 1, renderer2[s][i]); //subplot1.setRangeAxis(i+1, rangeAxis); } //i } //s } segment_flag = false; return chart; }
From source file:org.lmn.fc.frameworks.starbase.plugins.observatory.ui.tabs.charts.ChartHelper.java
/*********************************************************************************************** * Create a simple Chart from the specified XYDataset. * Choose a TimeSeriesChart or a XYLineChart appropriately. * Called from createCustomisedChart() in each ChartUIComponent subclass. * * * @param dataset// w w w . jav a2s . co m * @param timezone * @param metadatalist * @param channelcount * @param temperaturechannel * @param updatetype * @param displaylimit * @param channelselector * @param debug * * @return JFreeChart */ public static JFreeChart createChart(final XYDataset dataset, final TimeZone timezone, final List<Metadata> metadatalist, final int channelcount, final boolean temperaturechannel, final DataUpdateType updatetype, final int displaylimit, final ChannelSelectorUIComponentInterface channelselector, final boolean debug) { final String SOURCE = "ChartHelper.createChart() "; final JFreeChart chart; final String strTitle; final String strLabelX; final String strLabelY; final XYDataset xyDatasetToDisplay; // The set of Metadata available should include the Instrument // and any items from the current observation strTitle = MetadataHelper.getMetadataValueByKey(metadatalist, MetadataDictionary.KEY_OBSERVATION_TITLE.getKey()); strLabelX = MetadataHelper.getMetadataValueByKey(metadatalist, MetadataDictionary.KEY_OBSERVATION_AXIS_LABEL_X.getKey()); // Axis.Y.0 only in this version strLabelY = MetadataHelper.getMetadataValueByKey(metadatalist, MetadataDictionary.KEY_OBSERVATION_AXIS_LABEL_Y.getKey() + MetadataDictionary.SUFFIX_SERIES_ZERO); // Transform the XYdataset in accordance with the current ChannelSelection Mode before displaying channelselector.debugSelector(debug, SOURCE); xyDatasetToDisplay = copyTransformedXYDataset(dataset, timezone, updatetype, displaylimit, channelselector.isDecimating(), channelselector.getChannelSelectionModes()); if (dataset instanceof TimeSeriesCollection) { chart = ChartFactory.createTimeSeriesChart(strTitle, strLabelX, strLabelY, xyDatasetToDisplay, channelselector.hasLegend(), true, false); } else { chart = ChartFactory.createXYLineChart(strTitle, strLabelX, strLabelY, xyDatasetToDisplay, PlotOrientation.VERTICAL, channelselector.hasLegend(), true, false); } if ((chart != null) && (chart.getXYPlot() != null) && (chart.getXYPlot().getRangeAxis() != null)) { final Stroke strokeCrosshair; final XYPlot plot; final XYItemRenderer renderer; chart.setBackgroundPaint(UIComponentPlugin.DEFAULT_COLOUR_CANVAS.getColor()); // Experimental chart configuration chart.getTitle().setFont(UIComponentPlugin.DEFAULT_FONT.getFont().deriveFont(20.0f)); plot = chart.getXYPlot(); plot.setBackgroundPaint(COLOR_PLOT); plot.setDomainGridlinePaint(COLOR_GRIDLINES); plot.setRangeGridlinePaint(COLOR_GRIDLINES); plot.setAxisOffset(PLOT_RECTANGLE_INSETS); plot.setDomainCrosshairVisible(true); plot.setDomainCrosshairLockedOnData(false); plot.setRangeCrosshairVisible(false); // Make the Crosshair more visible by changing the width from the default strokeCrosshair = new BasicStroke(2.0f, // The width of this BasicStroke BasicStroke.CAP_BUTT, // The decoration of the ends of a BasicStroke BasicStroke.JOIN_BEVEL, // The decoration applied where path segments meet 0.0f, // The limit to trim the miter join new float[] { 2.0f, 2.0f }, // The array representing the dashing pattern 0.0f); // The offset to start the dashing pattern plot.setDomainCrosshairStroke(strokeCrosshair); renderer = plot.getRenderer(); if ((renderer != null) && (renderer instanceof XYLineAndShapeRenderer)) { final XYLineAndShapeRenderer xyItemRenderer; int intSeriesCount; xyItemRenderer = (XYLineAndShapeRenderer) renderer; xyItemRenderer.setBaseLinesVisible(true); xyItemRenderer.setBaseShapesVisible(false); xyItemRenderer.setBaseShapesFilled(true); xyItemRenderer.setItemLabelsVisible(true); // Set the shape for the Chart legend items ChartUIHelper.setLegendShape(xyItemRenderer); // Colour only as many Series as we know about intSeriesCount = 0; // Examine the state of each channel's selection for (int channel = 0; channel < channelcount; channel++) { final ChannelSelectionMode selectionMode; if ((channelselector.getChannelSelectionModes() != null) && (channelselector.getChannelSelectionModes().size() == channelcount)) { // If there is a ChannelSelector, get the gain setting, or OFF selectionMode = channelselector.getChannelSelectionModes().get(channel); } else if (!channelselector.showChannels()) { // If there is no ChannelSelector, we assume that all Channels are ON, at X1 selectionMode = ChannelSelectionMode.X1; } else { // Not sure what to do, so just show all selectionMode = ChannelSelectionMode.X1; } if (!ChannelSelectionMode.OFF.equals(selectionMode)) { final ColourInterface colour; colour = MetadataHelper.getChannelColour(metadatalist, channel, temperaturechannel); MetadataHelper.showMetadataList(metadatalist, SOURCE + " COLOURS FOR CHART", LOADER_PROPERTIES.isMetadataDebug()); if (colour != null) { // Map the Colour to the Series xyItemRenderer.setSeriesPaint(intSeriesCount, colour.getColor()); } else { // Use the default colour if the metadata doesn't have it LOGGER.error(SOURCE + "The channel colour was missing or incorrectly specified in the Metadata, using default colour" + " [channel=" + channel + "]"); xyItemRenderer.setSeriesPaint(intSeriesCount, ChartUIHelper.getStandardColour(channel).getColor()); } // Prepare for the next Series intSeriesCount++; } } } } return (chart); }
From source file:de.fau.amos.ChartRenderer.java
/** * Creates Chart (JFreeChart object) using TimeSeriesCollection. Used for forecast only. * /*w w w.j a va 2s .com*/ * @param collection TimeSeriesCollection that provides basis for chart. * @param time Time where "real" data ends. * @param unit Unit of displayed values (kWh,TNF,kWh/TNF) * @return Returns finished JFreeChart. */ private JFreeChart createForecastChart(final TimeSeriesCollection collection, String time, String unit) { // Modification of X-Axis Label int day = Integer.parseInt(time.substring(8, 10)); int month = Integer.parseInt(time.substring(5, 7)); int year = Integer.parseInt(time.substring(0, 4)); //get Weekday Calendar c = Calendar.getInstance(); c.set(year, month - 1, day, 0, 0); int weekDay = c.get(Calendar.DAY_OF_WEEK); String dayString = new DateFormatSymbols(Locale.US).getWeekdays()[weekDay] + ", " + day + ". "; String monthString = new DateFormatSymbols(Locale.US).getMonths()[month - 1]; String xAxisLabel = "" + dayString + monthString + " " + time.substring(0, 4); //Creation of the lineChart JFreeChart lineChart = ChartFactory.createTimeSeriesChart("Forecast", // title xAxisLabel, // x-axis label // "Energy Consumption "+("1".equals(unit)?"[kWh]":("2".equals(unit)?"[kWh/TNF]":("3".equals(unit)?"[TNF]":""))), // y-axis label ("1".equals(unit) ? "Energy Consumption [kWh]" : ("2".equals(unit) ? "Energy Consumption [kWh/TNF]" : ("3".equals(unit) ? "Produced Pieces [TNF]" : ""))), collection, // data true, // create legend? false, // generate tooltips? false // generate URLs? ); //graphical modifications for LineChart lineChart.setBackgroundPaint(Color.white); XYPlot plot = lineChart.getXYPlot(); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(0, 0, 0, 0)); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer() { private static final long serialVersionUID = 1L; // Stroke soild = new BasicStroke(2.0f); Stroke dashed = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] { 10.0f }, 0.0f); @Override public Stroke getItemStroke(int row, int column) { //third series in collection -> forecast collection if (row == 2) { return dashed; //partial dashed->not needed now, maybe later // double x = collection.getXValue(row, column); // // if ( x > 4){ // return dashed; // } else { // return soild; // } } else return super.getItemStroke(row, column); } }; renderer.setBaseShapesVisible(false); renderer.setBaseShapesFilled(true); renderer.setBaseStroke(new BasicStroke(3)); plot.setRenderer(renderer); return lineChart; }
From source file:edu.ucla.stat.SOCR.applications.demo.PortfolioApplication2.java
void updateGraph() { /* System.out.println("updateGraph get called----------------mouseClicked="+mouseClicked); Exception e = new Exception();//from w w w .j a v a2 s . c o m e.printStackTrace();*/ // printMatrix(COVR, "after COVR"); // printMatrix(CORR, "after CORR"); //setupStockOptions(); p_serie = new XYSeries("Stock", false); t_serie = new XYSeries("Tangent", false); m_serie = new XYSeries("M", false); s_serie = new XYSeries("Positives", false); StringBuffer text = new StringBuffer(); text.append("mouse clicked at (Risk, Expected Return) = " + tooltip + "\n"); // text.append("The stock combinations are:"); for (int i = 0; i < chartDataPoints.getPointCount(); i++) { double point_x = chartDataPoints.getX(i); double point_y = chartDataPoints.getY(i); p_serie.add(point_x, point_y); // System.out.println("chart point " +(i+1)+" is ("+point_x+", "+point_y+")"); if (isAllPositive(chartDataPoints.getSDPpointer(i))) { s_serie.add(point_x, point_y); } } if (show_tangent) { t_serie.add(t1_x, t1_y); t_serie.add(t2_x, t2_y); } if (mouseClicked) { // System.out.println("mouse_x="+mouse_x+", mouse_y="+mouse_y); m_serie.add(mouse_x, mouse_y); } XYSeriesCollection ds = new XYSeriesCollection(); ds.addSeries(m_serie); ds.addSeries(t_serie); ds.addSeries(s_serie); ds.addSeries(p_serie); JFreeChart chart = ChartFactory.createXYLineChart("", // chart title "Risk (Standard Deviation)", // x axis label "Expected Return", // y axis label ds, // data PlotOrientation.VERTICAL, false, // include legend true, // tooltips false // urls ); chart.setBackgroundPaint(Color.white); XYPlot subplot1 = (XYPlot) chart.getPlot(); XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) subplot1.getRenderer(); NumberAxis xAxis = (NumberAxis) subplot1.getDomainAxis(); NumberAxis yAxis = (NumberAxis) subplot1.getRangeAxis(); if (t2_x > 0) xAxis.setRange(0, t2_x); else xAxis.setRange(t2_x, 0); if (t2_y > 0) yAxis.setRange(-t2_y, t2_y); else yAxis.setRange(t2_y, -t2_y); renderer1.setSeriesPaint(3, Color.blue); renderer1.setSeriesPaint(2, Color.red); renderer1.setSeriesPaint(1, Color.red); renderer1.setSeriesPaint(0, Color.green); Shape shape = renderer1.getBaseShape(); renderer1.setSeriesShape(1, shape); renderer1.setSeriesShape(3, shape); renderer1.setSeriesLinesVisible(0, false); renderer1.setSeriesLinesVisible(1, true); renderer1.setSeriesLinesVisible(2, false); renderer1.setSeriesLinesVisible(3, false); // renderer1.setLinesVisible(); renderer1.setBaseShapesVisible(true); renderer1.setBaseShapesFilled(true); graphPanel.removeAll(); chartPanel = new ChartPanel(chart, false); chartPanel.setPreferredSize(new Dimension(CHART_SIZE_X, CHART_SIZE_Y)); chartPanel.addChartMouseListener(this); graphPanel.add(chartPanel); graphPanel.validate(); // super.updateGraph(chartPanel); // if (mouseClicked) { getRecordTable().setText(text.toString()); } else { text = new StringBuffer(); /* text.append("("+tooltip_formatter.format(minPoint.mean)+" , "+ tooltip_formatter.format(minPoint.std)+")\n"); for (int j=0; j<numStocks; j++) text.append("Stock "+(j+1)+" : x["+(j+1)+"]="+tooltip_formatter.format(minPoint.x[j])+"\n"); text.append("---\n");*/ getRecordTable().setText(text.toString()); ; } mouseClicked = false; }
From source file:com.appnativa.rare.ui.chart.jfreechart.ChartHandler.java
protected void customizeSeriesAttributes(ChartPanel chartPanel, ChartDefinition cd, Plot plot, boolean multiset) { List<RenderableDataItem> rows = cd.getSeries(); ChartInfo ci = (ChartInfo) cd.getChartHandlerInfo(); List<SeriesData> seriesData = ci.seriesData; int len = (seriesData == null) ? 0 : seriesData.size(); if (len == 0) { return;// ww w . j a v a2 s. com } ChartDataItem di; Paint p = null; iPainter painter; BasicStroke stroke = null; BasicStroke ostroke = null; RareBarPainter barPainter = null; AbstractRenderer r; Object o; UIColor c; PlotInformation pi = cd.getPlotInformation(); if (pi != null) { float lt = pi.getLineThickness(); float ot = pi.getOutlineThickness(); if (lt > 1) { stroke = new BasicStroke(lt); } if (ot > 1) { ostroke = (ot == lt) ? stroke : new BasicStroke(ot); } } int n = 0; for (int i = 0; i < len; i++) { SeriesData data = seriesData.get(i); di = (ChartDataItem) rows.get(data.seriesIndex); if ((di == null) || di.isEmpty()) { continue; } p = null; o = ((XYPlot) plot).getRenderer(multiset ? i : 0); if (!(o instanceof AbstractRenderer)) { continue; } UIColor fc = data.fillColor; UIColor oc = data.outlineColor; r = (AbstractRenderer) o; painter = di.getComponentPainter(); if (painter == null) { c = di.getBackground(); if (c instanceof UIColorShade) { painter = ((UIColorShade) c).getBackgroundPainter(); if (painter instanceof UISimpleBackgroundPainter) { p = painter.getBackgroundColor(); painter = null; } } else { p = c; } } if ((painter == null) && (p == null)) { painter = cd.getRangeAxis().getComponentPainter(); if (painter == null) { c = cd.getRangeAxis().getBackground(); if (c instanceof UIColorShade) { painter = ((UIColorShade) c).getBackgroundPainter(); if (painter instanceof UISimpleBackgroundPainter) { p = painter.getBackgroundColor(); painter = null; } } else { p = c; } } } if (painter != null) { if (r instanceof XYBarRenderer) { if (barPainter == null) { barPainter = new RareBarPainter(chartPanel); } XYBarRenderer xr = (XYBarRenderer) r; xr.setBarPainter(barPainter); p = ChartHelper.getPaint(painter); } else if (r instanceof BarRenderer) { if (barPainter == null) { barPainter = new RareBarPainter(chartPanel); } BarRenderer xr = (BarRenderer) r; xr.setItemMargin(0); xr.setBarPainter(barPainter); p = ChartHelper.getPaint(painter); } else { iPlatformPaint pp = painter.getPaint(50, 50); p = (pp == null) ? null : pp.getPaint(); } } if (p == null) { p = di.getBackground(); } if (p == null) { p = getDefaultColor(i); } n = multiset ? 0 : i; r.setSeriesPaint(n, p); if (r instanceof XYAreaSplineRendererEx) { r.setSeriesFillPaint(n, p); } float lt = getSeriesLineThickness(di, -1); if (lt != -1) { r.setSeriesStroke(n, new BasicStroke(lt)); } else if (stroke != null) { r.setSeriesStroke(n, stroke); } lt = getSeriesOutlineLineThickness(di, -1); if (lt != -1) { r.setSeriesOutlineStroke(n, ostroke); } else if (ostroke != null) { r.setSeriesOutlineStroke(n, ostroke); } if (r instanceof XYLineAndShapeRenderer) { ShapeStyle ss = getSeriesShapeStyle(pi, di); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r; switch (ss) { case FILLED: renderer.setBaseShapesVisible(true); renderer.setBaseShapesFilled(true); renderer.setUseFillPaint(true); renderer.setSeriesFillPaint(n, (fc == null) ? p : fc.getPaint()); break; case OUTLINED: renderer.setBaseShapesVisible(true); renderer.setUseOutlinePaint(true); renderer.setDrawOutlines(true); renderer.setSeriesOutlinePaint(n, (oc == null) ? p : oc.getPaint()); break; case FILLED_AND_OUTLINED: renderer.setSeriesOutlinePaint(n, (oc == null) ? p : oc.getPaint()); renderer.setSeriesFillPaint(n, (fc == null) ? UIColor.WHITE.getPaint() : fc.getPaint()); renderer.setBaseShapesVisible(true); renderer.setDrawOutlines(true); renderer.setBaseShapesFilled(true); renderer.setUseFillPaint(true); renderer.setUseOutlinePaint(true); break; default: renderer.setBaseShapesVisible(false); break; } if (renderer.getBaseShapesVisible()) { renderer.setSeriesShape(n, getDefaultShape(i)); } } } }
From source file:com.appnativa.rare.ui.chart.jfreechart.ChartHandler.java
protected void customizeXYLineAndShapeRenderer(ChartDefinition cd, XYPlot plot, PlotInformation pi) { AbstractXYItemRenderer renderer = (AbstractXYItemRenderer) plot.getRenderer(); if (renderer instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer xrenderer = (XYLineAndShapeRenderer) renderer; if (pi != null) { ShapeStyle fs = pi.getShapeStyle(); if (renderer instanceof XYAreaSplineRendererEx) { fs = pi.getShapeStyleEx(); }//from ww w. j a v a 2 s.c om switch (fs) { case FILLED: xrenderer.setBaseShapesVisible(true); xrenderer.setBaseShapesFilled(true); xrenderer.setUseFillPaint(true); break; case OUTLINED: xrenderer.setBaseShapesVisible(true); xrenderer.setDrawOutlines(true); xrenderer.setUseOutlinePaint(true); break; case FILLED_AND_OUTLINED: xrenderer.setBaseShapesVisible(true); xrenderer.setDrawOutlines(true); xrenderer.setBaseShapesFilled(true); xrenderer.setUseOutlinePaint(true); xrenderer.setUseFillPaint(true); break; default: xrenderer.setBaseShapesVisible(false); break; } } if (xrenderer.getBaseShapesVisible()) { xrenderer.setBaseShape(getDefaultShape(0)); } } StandardXYItemLabelGenerator lg = null; renderer.setBaseItemLabelsVisible(cd.isShowPlotLabels()); lg = new XYToolTipLabelGenerator(((ChartInfo) cd.getChartHandlerInfo()).seriesData); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); renderer.setBaseItemLabelGenerator(lg); rangeAxis.setUpperMargin(0.25); if (cd.isShowToolTips()) { renderer.setBaseToolTipGenerator((XYToolTipLabelGenerator) lg); } }
From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java
private JFreeChart createXYLineChart(String title, String xLabel, String yLabel, XYDataset dataset) { // create the chart... JFreeChart chart = ChartFactory.createXYLineChart(title, // chart title xLabel, // domain axis label yLabel, // range axis label dataset, // data orientation, // orientation true, // include legend true, // tooltips false // urls );// w w w . ja va 2 s . c o m chart.setBackgroundPaint(Color.white); XYPlot plot = chart.getXYPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setRangeGridlinePaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setNoDataMessage("No data available"); // customise the renderer... XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); // customise the range axis... if (lineCondition.indexOf("qq") != -1) { renderer.setBaseShapesFilled(true); renderer.setSeriesLinesVisible(1, true); renderer.setSeriesShapesVisible(1, false); renderer.setSeriesLinesVisible(0, false); renderer.setSeriesShapesVisible(0, true); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRangeIncludesZero(false); rangeAxis.setUpperMargin(0); rangeAxis.setLowerMargin(0); // rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setAutoRangeIncludesZero(false); domainAxis.setUpperMargin(0); domainAxis.setLowerMargin(0); return chart; } NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRange(false); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); if (timeType.length() != 0) { setDateAxis(plot); } else { NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setAutoRange(false); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); } // System.out.println("lineCondition "+lineCondition); if (lineCondition.indexOf("noshape") != -1) renderer.setBaseShapesVisible(false); else renderer.setBaseShapesVisible(true); if (lineCondition.indexOf("noline") != -1) renderer.setBaseLinesVisible(false); if (lineCondition.indexOf("nofill") != -1) { renderer.setBaseShapesFilled(false); renderer.setBaseFillPaint(Color.white); renderer.setDrawOutlines(true); } else { renderer.setBaseShapesFilled(true); renderer.setUseFillPaint(false); } return chart; }