public static JFreeChart createXYLineChart(string title, string xAxisLabel, string yAxisLabel, XYDataset dataset, PlotOrientation orientation, bool legend, bool tooltips, bool urls) { int num1 = tooltips ? 1 : 0; int num2 = urls ? 1 : 0; int num3 = legend ? 1 : 0; if (orientation == null) { string str = "Null 'orientation' argument."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { NumberAxis numberAxis1 = new NumberAxis(xAxisLabel); numberAxis1.setAutoRangeIncludesZero(false); NumberAxis numberAxis2 = new NumberAxis(yAxisLabel); XYLineAndShapeRenderer andShapeRenderer = new XYLineAndShapeRenderer(true, false); XYPlot xyPlot = new XYPlot(dataset, (ValueAxis) numberAxis1, (ValueAxis) numberAxis2, (XYItemRenderer) andShapeRenderer); xyPlot.setOrientation(orientation); if (num1 != 0) andShapeRenderer.setBaseToolTipGenerator((XYToolTipGenerator) new StandardXYToolTipGenerator()); if (num2 != 0) andShapeRenderer.setURLGenerator((XYURLGenerator) new StandardXYURLGenerator()); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num3 != 0); ChartFactory.currentTheme.apply(jfc); return jfc; } }
public virtual void add(XYPlot subplot, int weight) { if (subplot == null) { string str = "Null 'subplot' argument."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else if (weight <= 0) { string str = "Require weight >= 1."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { subplot.setParent((Plot) this); subplot.setWeight(weight); subplot.setInsets(new RectangleInsets(0.0, 0.0, 0.0, 0.0), false); subplot.setDomainAxis((ValueAxis) null); subplot.addChangeListener((PlotChangeListener) this); this.subplots.add((object) subplot); ValueAxis domainAxis = this.getDomainAxis(); if (domainAxis != null) domainAxis.configure(); this.fireChangeEvent(); } }
public static bool isEmptyOrNull(XYPlot plot) { if (plot != null) { int index = 0; for (int datasetCount = plot.getDatasetCount(); index < datasetCount; ++index) { if (!DatasetUtilities.isEmptyOrNull(plot.getDataset(index))) return false; } } return true; }
public virtual void add(XYPlot subplot, int weight) { if (weight <= 0) { string str = "The 'weight' must be positive."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { subplot.setParent((Plot) this); subplot.setWeight(weight); subplot.setInsets(new RectangleInsets(0.0, 0.0, 0.0, 0.0)); subplot.setRangeAxis((ValueAxis) null); subplot.addChangeListener((PlotChangeListener) this); this.subplots.add((object) subplot); this.configureRangeAxes(); this.fireChangeEvent(); } }
public virtual void add(XYPlot subplot) { this.add(subplot, 1); }
public override void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass) { if (!this.getItemVisible(series, item)) return; if (pass == 0) { IntervalXYDataset ntervalXyDataset = (IntervalXYDataset) dataset; DeviationRenderer.State state1 = (DeviationRenderer.State) state; double xvalue = ntervalXyDataset.getXValue(series, item); double startYvalue = ntervalXyDataset.getStartYValue(series, item); double endYvalue = ntervalXyDataset.getEndYValue(series, item); RectangleEdge domainAxisEdge = plot.getDomainAxisEdge(); RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge(); double num1 = domainAxis.valueToJava2D(xvalue, dataArea, domainAxisEdge); double num2 = rangeAxis.valueToJava2D(startYvalue, dataArea, rangeAxisEdge); double num3 = rangeAxis.valueToJava2D(endYvalue, dataArea, rangeAxisEdge); PlotOrientation orientation = plot.getOrientation(); if (orientation == PlotOrientation.__\u003C\u003EHORIZONTAL) { List list1 = state1.lowerCoordinates; double[] numArray1 = new double[2]; int index1 = 0; double num4 = num2; numArray1[index1] = num4; int index2 = 1; double num5 = num1; numArray1[index2] = num5; list1.add((object) numArray1); List list2 = state1.upperCoordinates; double[] numArray2 = new double[2]; int index3 = 0; double num6 = num3; numArray2[index3] = num6; int index4 = 1; double num7 = num1; numArray2[index4] = num7; list2.add((object) numArray2); } else if (orientation == PlotOrientation.__\u003C\u003EVERTICAL) { List list1 = state1.lowerCoordinates; double[] numArray1 = new double[2]; int index1 = 0; double num4 = num1; numArray1[index1] = num4; int index2 = 1; double num5 = num2; numArray1[index2] = num5; list1.add((object) numArray1); List list2 = state1.upperCoordinates; double[] numArray2 = new double[2]; int index3 = 0; double num6 = num1; numArray2[index3] = num6; int index4 = 1; double num7 = num3; numArray2[index4] = num7; list2.add((object) numArray2); } if (item == dataset.getItemCount(series) - 1) { Composite composite = g2.getComposite(); g2.setComposite((Composite) AlphaComposite.getInstance(3, this.alpha)); g2.setPaint(this.getItemFillPaint(series, item)); GeneralPath generalPath = new GeneralPath(); double[] numArray1 = (double[]) state1.lowerCoordinates.get(0); ((Path2D.Float) generalPath).moveTo((float) numArray1[0], (float) numArray1[1]); for (int index = 1; index < state1.lowerCoordinates.size(); ++index) { double[] numArray2 = (double[]) state1.lowerCoordinates.get(index); ((Path2D.Float) generalPath).lineTo((float) numArray2[0], (float) numArray2[1]); } int num4 = state1.upperCoordinates.size(); double[] numArray3 = (double[]) state1.upperCoordinates.get(num4 - 1); ((Path2D.Float) generalPath).lineTo((float) numArray3[0], (float) numArray3[1]); int num5 = num4 - 2; while (num5 >= 0) { double[] numArray2 = (double[]) state1.upperCoordinates.get(num5); ((Path2D.Float) generalPath).lineTo((float) numArray2[0], (float) numArray2[1]); num5 += -1; } ((Path2D) generalPath).closePath(); g2.fill((Shape) generalPath); g2.setComposite(composite); state1.lowerCoordinates.clear(); state1.upperCoordinates.clear(); } } if (this.isLinePass(pass)) { if (item == 0) { DeviationRenderer.State state1 = (DeviationRenderer.State) state; ((Path2D) state1.seriesPath).reset(); state1.setLastPointGood(false); } if (!this.getItemLineVisible(series, item)) return; this.drawPrimaryLineAsPath(state, g2, plot, dataset, pass, series, item, domainAxis, rangeAxis, dataArea); } else { if (!this.isItemPass(pass)) return; EntityCollection entities = (EntityCollection) null; if (info != null) entities = info.getOwner().getEntityCollection(); this.drawSecondaryPass(g2, plot, dataset, pass, series, item, domainAxis, dataArea, rangeAxis, crosshairState, entities); } }
public override XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset dataset, PlotRenderingInfo info) { DeviationRenderer.State state = new DeviationRenderer.State(info); state.seriesPath = new GeneralPath(); state.setProcessVisibleItemsOnly(false); return (XYItemRendererState) state; }
public override void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass) { if (!(dataset is IntervalXYDataset) || !(dataset is TableXYDataset)) { string str1 = new StringBuffer().append("dataset (type ").append(Object.instancehelper_getClass((object) dataset).getName()).append(") has wrong type:").toString(); int num = 0; if (!(StackedXYBarRenderer.class\u0024org\u0024jfree\u0024data\u0024xy\u0024IntervalXYDataset != null ? StackedXYBarRenderer.class\u0024org\u0024jfree\u0024data\u0024xy\u0024IntervalXYDataset : (StackedXYBarRenderer.class\u0024org\u0024jfree\u0024data\u0024xy\u0024IntervalXYDataset = StackedXYBarRenderer.class\u0024("org.jfree.data.xy.IntervalXYDataset"))).isAssignableFrom(Object.instancehelper_getClass((object) dataset))) { str1 = new StringBuffer().append(str1).append(" it is no IntervalXYDataset").toString(); num = 1; } if (!(StackedXYBarRenderer.class\u0024org\u0024jfree\u0024data\u0024xy\u0024TableXYDataset != null ? StackedXYBarRenderer.class\u0024org\u0024jfree\u0024data\u0024xy\u0024TableXYDataset : (StackedXYBarRenderer.class\u0024org\u0024jfree\u0024data\u0024xy\u0024TableXYDataset = StackedXYBarRenderer.class\u0024("org.jfree.data.xy.TableXYDataset"))).isAssignableFrom(Object.instancehelper_getClass((object) dataset))) { if (num != 0) str1 = new StringBuffer().append(str1).append(" and").toString(); str1 = new StringBuffer().append(str1).append(" it is no TableXYDataset").toString(); } string str2 = str1; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str2); } else { IntervalXYDataset ntervalXyDataset = (IntervalXYDataset) dataset; double yvalue1 = ntervalXyDataset.getYValue(series, item); if (Double.isNaN(yvalue1)) return; double num1 = 0.0; if (this.renderAsPercentages) { num1 = DatasetUtilities.calculateStackTotal((TableXYDataset) dataset, item); yvalue1 /= num1; } double d1 = 0.0; double d2 = 0.0; for (int i1 = 0; i1 < series; ++i1) { double yvalue2 = dataset.getYValue(i1, item); if (!Double.isNaN(yvalue2)) { if (this.renderAsPercentages) yvalue2 /= num1; if (yvalue2 > 0.0) d1 += yvalue2; else d2 += yvalue2; } } RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge(); double num2; double num3; if (yvalue1 > 0.0) { num2 = rangeAxis.valueToJava2D(d1, dataArea, rangeAxisEdge); num3 = rangeAxis.valueToJava2D(d1 + yvalue1, dataArea, rangeAxisEdge); } else { num2 = rangeAxis.valueToJava2D(d2, dataArea, rangeAxisEdge); num3 = rangeAxis.valueToJava2D(d2 + yvalue1, dataArea, rangeAxisEdge); } RectangleEdge domainAxisEdge = plot.getDomainAxisEdge(); double startXvalue = ntervalXyDataset.getStartXValue(series, item); if (Double.isNaN(startXvalue)) return; double num4 = domainAxis.valueToJava2D(startXvalue, dataArea, domainAxisEdge); double endXvalue = ntervalXyDataset.getEndXValue(series, item); if (Double.isNaN(endXvalue)) return; double num5 = domainAxis.valueToJava2D(endXvalue, dataArea, domainAxisEdge); double num6 = Math.max(1.0, Math.abs(num5 - num4)); double num7 = Math.abs(num3 - num2); if (this.getMargin() > 0.0) { double num8 = num6 * this.getMargin(); num6 -= num8; num4 += num8 / 2.0; } Rectangle2D.Double @double = (Rectangle2D.Double) null; PlotOrientation orientation = plot.getOrientation(); if (orientation == PlotOrientation.__\u003C\u003EHORIZONTAL) @double = new Rectangle2D.Double(Math.min(num2, num3), num5, num7, num6); else if (orientation == PlotOrientation.__\u003C\u003EVERTICAL) @double = new Rectangle2D.Double(num4, Math.min(num2, num3), num6, num7); int num9 = yvalue1 > 0.0 ? 1 : 0; int num10 = rangeAxis.isInverted() ? 1 : 0; RectangleEdge re = orientation != PlotOrientation.__\u003C\u003EHORIZONTAL ? (num9 != 0 && num10 == 0 || num9 == 0 && num10 != 0 ? RectangleEdge.__\u003C\u003EBOTTOM : RectangleEdge.__\u003C\u003ETOP) : (num9 != 0 && num10 != 0 || num9 == 0 && num10 == 0 ? RectangleEdge.__\u003C\u003ERIGHT : RectangleEdge.__\u003C\u003ELEFT); if (pass == 0) { if (!this.getShadowsVisible()) return; this.getBarPainter().paintBarShadow(g2, (XYBarRenderer) this, series, item, (RectangularShape) @double, re, false); } else if (pass == 1) { this.getBarPainter().paintBar(g2, (XYBarRenderer) this, series, item, (RectangularShape) @double, re); if (info == null) return; EntityCollection entityCollection = info.getOwner().getEntityCollection(); if (entityCollection == null) return; this.addEntity(entityCollection, (Shape) @double, dataset, series, item, ((RectangularShape) @double).getCenterX(), ((RectangularShape) @double).getCenterY()); } else { if (pass != 2 || !this.isItemLabelVisible(series, item)) return; XYItemLabelGenerator itemLabelGenerator = this.getItemLabelGenerator(series, item); this.drawItemLabel(g2, dataset, series, item, plot, itemLabelGenerator, (Rectangle2D) @double, yvalue1 < 0.0); } } }
public override XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info) { return (XYItemRendererState) new XYBarRenderer.XYBarRendererState((XYBarRenderer) this, info); }
public override XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info) { XYLineAndShapeRenderer.State state = (XYLineAndShapeRenderer.State) base.initialise(g2, dataArea, plot, data, info); state.setProcessVisibleItemsOnly(false); this.points = new Vector(); this.setDrawSeriesLineAsPath(true); return (XYItemRendererState) state; }
public static JFreeChart createBoxAndWhiskerChart(string title, string timeAxisLabel, string valueAxisLabel, BoxAndWhiskerXYDataset dataset, bool legend) { int num = legend ? 1 : 0; DateAxis dateAxis = new DateAxis(timeAxisLabel); NumberAxis numberAxis = new NumberAxis(valueAxisLabel); numberAxis.setAutoRangeIncludesZero(false); XYBoxAndWhiskerRenderer andWhiskerRenderer = new XYBoxAndWhiskerRenderer(10.0); XYPlot xyPlot = new XYPlot((XYDataset) dataset, (ValueAxis) dateAxis, (ValueAxis) numberAxis, (XYItemRenderer) andWhiskerRenderer); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num != 0); ChartFactory.currentTheme.apply(jfc); return jfc; }
public static JFreeChart createStackedXYAreaChart(string title, string xAxisLabel, string yAxisLabel, TableXYDataset dataset, PlotOrientation orientation, bool legend, bool tooltips, bool urls) { int num1 = tooltips ? 1 : 0; int num2 = urls ? 1 : 0; int num3 = legend ? 1 : 0; if (orientation == null) { string str = "Null 'orientation' argument."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { NumberAxis numberAxis1 = new NumberAxis(xAxisLabel); numberAxis1.setAutoRangeIncludesZero(false); numberAxis1.setLowerMargin(0.0); numberAxis1.setUpperMargin(0.0); NumberAxis numberAxis2 = new NumberAxis(yAxisLabel); StandardXYToolTipGenerator toolTipGenerator = (StandardXYToolTipGenerator) null; if (num1 != 0) toolTipGenerator = new StandardXYToolTipGenerator(); StandardXYURLGenerator standardXyurlGenerator = (StandardXYURLGenerator) null; if (num2 != 0) standardXyurlGenerator = new StandardXYURLGenerator(); StackedXYAreaRenderer2 stackedXyAreaRenderer2 = new StackedXYAreaRenderer2((XYToolTipGenerator) toolTipGenerator, (XYURLGenerator) standardXyurlGenerator); stackedXyAreaRenderer2.setOutline(true); XYPlot xyPlot = new XYPlot((XYDataset) dataset, (ValueAxis) numberAxis1, (ValueAxis) numberAxis2, (XYItemRenderer) stackedXyAreaRenderer2); xyPlot.setOrientation(orientation); xyPlot.setRangeAxis((ValueAxis) numberAxis2); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num3 != 0); ChartFactory.currentTheme.apply(jfc); return jfc; } }
public static JFreeChart createXYStepChart(string title, string xAxisLabel, string yAxisLabel, XYDataset dataset, PlotOrientation orientation, bool legend, bool tooltips, bool urls) { int num1 = tooltips ? 1 : 0; int num2 = urls ? 1 : 0; int num3 = legend ? 1 : 0; if (orientation == null) { string str = "Null 'orientation' argument."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { DateAxis dateAxis = new DateAxis(xAxisLabel); NumberAxis numberAxis = new NumberAxis(yAxisLabel); numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); StandardXYToolTipGenerator toolTipGenerator = (StandardXYToolTipGenerator) null; if (num1 != 0) toolTipGenerator = new StandardXYToolTipGenerator(); StandardXYURLGenerator standardXyurlGenerator = (StandardXYURLGenerator) null; if (num2 != 0) standardXyurlGenerator = new StandardXYURLGenerator(); XYStepRenderer xyStepRenderer = new XYStepRenderer((XYToolTipGenerator) toolTipGenerator, (XYURLGenerator) standardXyurlGenerator); XYPlot xyPlot = new XYPlot(dataset, (ValueAxis) dateAxis, (ValueAxis) numberAxis, (XYItemRenderer) null); xyPlot.setRenderer((XYItemRenderer) xyStepRenderer); xyPlot.setOrientation(orientation); xyPlot.setDomainCrosshairVisible(false); xyPlot.setRangeCrosshairVisible(false); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num3 != 0); ChartFactory.currentTheme.apply(jfc); return jfc; } }
public static JFreeChart createXYBarChart(string title, string xAxisLabel, bool dateAxis, string yAxisLabel, IntervalXYDataset dataset, PlotOrientation orientation, bool legend, bool tooltips, bool urls) { int num1 = dateAxis ? 1 : 0; int num2 = tooltips ? 1 : 0; int num3 = urls ? 1 : 0; int num4 = legend ? 1 : 0; if (orientation == null) { string str = "Null 'orientation' argument."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { ValueAxis domainAxis; if (num1 != 0) { domainAxis = (ValueAxis) new DateAxis(xAxisLabel); } else { NumberAxis numberAxis = new NumberAxis(xAxisLabel); numberAxis.setAutoRangeIncludesZero(false); domainAxis = (ValueAxis) numberAxis; } NumberAxis numberAxis1 = new NumberAxis(yAxisLabel); XYBarRenderer xyBarRenderer = new XYBarRenderer(); if (num2 != 0) { StandardXYToolTipGenerator toolTipGenerator = num1 == 0 ? new StandardXYToolTipGenerator() : StandardXYToolTipGenerator.getTimeSeriesInstance(); xyBarRenderer.setBaseToolTipGenerator((XYToolTipGenerator) toolTipGenerator); } if (num3 != 0) xyBarRenderer.setURLGenerator((XYURLGenerator) new StandardXYURLGenerator()); XYPlot xyPlot = new XYPlot((XYDataset) dataset, domainAxis, (ValueAxis) numberAxis1, (XYItemRenderer) xyBarRenderer); xyPlot.setOrientation(orientation); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num4 != 0); ChartFactory.currentTheme.apply(jfc); return jfc; } }
public static JFreeChart createCandlestickChart(string title, string timeAxisLabel, string valueAxisLabel, OHLCDataset dataset, bool legend) { int num = legend ? 1 : 0; DateAxis dateAxis = new DateAxis(timeAxisLabel); NumberAxis numberAxis = new NumberAxis(valueAxisLabel); XYPlot xyPlot = new XYPlot((XYDataset) dataset, (ValueAxis) dateAxis, (ValueAxis) numberAxis, (XYItemRenderer) null); xyPlot.setRenderer((XYItemRenderer) new CandlestickRenderer()); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num != 0); ChartFactory.currentTheme.apply(jfc); return jfc; }
public static JFreeChart createWindPlot(string title, string xAxisLabel, string yAxisLabel, WindDataset dataset, bool legend, bool tooltips, bool urls) { int num1 = tooltips ? 1 : 0; int num2 = urls ? 1 : 0; int num3 = legend ? 1 : 0; DateAxis dateAxis = new DateAxis(xAxisLabel); NumberAxis numberAxis = new NumberAxis(yAxisLabel); numberAxis.setRange(-12.0, 12.0); WindItemRenderer windItemRenderer = new WindItemRenderer(); if (num1 != 0) windItemRenderer.setBaseToolTipGenerator((XYToolTipGenerator) new StandardXYToolTipGenerator()); if (num2 != 0) windItemRenderer.setURLGenerator((XYURLGenerator) new StandardXYURLGenerator()); XYPlot xyPlot = new XYPlot((XYDataset) dataset, (ValueAxis) dateAxis, (ValueAxis) numberAxis, (XYItemRenderer) windItemRenderer); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num3 != 0); ChartFactory.currentTheme.apply(jfc); return jfc; }
public virtual void remove(XYPlot subplot) { if (subplot == null) { string str = " Null 'subplot' argument."; Throwable.__\u003CsuppressFillInStackTrace\u003E(); throw new IllegalArgumentException(str); } else { int num1 = -1; int num2 = this.subplots.size(); for (int index = 0; num1 == -1 && index < num2; ++index) { if (this.subplots.get(index) == subplot) num1 = index; } if (num1 == -1) return; this.subplots.remove(num1); subplot.setParent((Plot) null); subplot.removeChangeListener((PlotChangeListener) this); ValueAxis domainAxis = this.getDomainAxis(); if (domainAxis != null) domainAxis.configure(); this.fireChangeEvent(); } }
public static JFreeChart createTimeSeriesChart(string title, string timeAxisLabel, string valueAxisLabel, XYDataset dataset, bool legend, bool tooltips, bool urls) { int num1 = tooltips ? 1 : 0; int num2 = urls ? 1 : 0; int num3 = legend ? 1 : 0; DateAxis dateAxis = new DateAxis(timeAxisLabel); dateAxis.setLowerMargin(0.02); dateAxis.setUpperMargin(0.02); NumberAxis numberAxis = new NumberAxis(valueAxisLabel); numberAxis.setAutoRangeIncludesZero(false); XYPlot xyPlot = new XYPlot(dataset, (ValueAxis) dateAxis, (ValueAxis) numberAxis, (XYItemRenderer) null); StandardXYToolTipGenerator toolTipGenerator = (StandardXYToolTipGenerator) null; if (num1 != 0) toolTipGenerator = StandardXYToolTipGenerator.getTimeSeriesInstance(); StandardXYURLGenerator standardXyurlGenerator = (StandardXYURLGenerator) null; if (num2 != 0) standardXyurlGenerator = new StandardXYURLGenerator(); XYLineAndShapeRenderer andShapeRenderer = new XYLineAndShapeRenderer(true, false); andShapeRenderer.setBaseToolTipGenerator((XYToolTipGenerator) toolTipGenerator); andShapeRenderer.setURLGenerator((XYURLGenerator) standardXyurlGenerator); xyPlot.setRenderer((XYItemRenderer) andShapeRenderer); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num3 != 0); ChartFactory.currentTheme.apply(jfc); return jfc; }
public abstract void draw(Graphics2D gd, XYPlot xyp, Rectangle2D rd, ValueAxis va1, ValueAxis va2, int i, PlotRenderingInfo pri);
public static JFreeChart createHighLowChart(string title, string timeAxisLabel, string valueAxisLabel, OHLCDataset dataset, Timeline timeline, bool legend) { int num = legend ? 1 : 0; DateAxis dateAxis = new DateAxis(timeAxisLabel); dateAxis.setTimeline(timeline); NumberAxis numberAxis = new NumberAxis(valueAxisLabel); HighLowRenderer highLowRenderer = new HighLowRenderer(); highLowRenderer.setBaseToolTipGenerator((XYToolTipGenerator) new HighLowItemLabelGenerator()); XYPlot xyPlot = new XYPlot((XYDataset) dataset, (ValueAxis) dateAxis, (ValueAxis) numberAxis, (XYItemRenderer) highLowRenderer); JFreeChart.__\u003Cclinit\u003E(); JFreeChart jfc = new JFreeChart(title, JFreeChart.__\u003C\u003EDEFAULT_TITLE_FONT, (Plot) xyPlot, num != 0); ChartFactory.currentTheme.apply(jfc); return jfc; }
protected internal override void drawPrimaryLineAsPath(XYItemRendererState state, Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, Rectangle2D dataArea) { RectangleEdge domainAxisEdge = plot.getDomainAxisEdge(); RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge(); double xvalue = dataset.getXValue(series, item); double yvalue = dataset.getYValue(series, item); double num1 = domainAxis.valueToJava2D(xvalue, dataArea, domainAxisEdge); double num2 = rangeAxis.valueToJava2D(yvalue, dataArea, rangeAxisEdge); if (!Double.isNaN(num1) && !Double.isNaN(num2)) { XYSplineRenderer.ControlPoint controlPoint = new XYSplineRenderer.ControlPoint(this, plot.getOrientation() != PlotOrientation.__\u003C\u003EHORIZONTAL ? (float) num1 : (float) num2, plot.getOrientation() != PlotOrientation.__\u003C\u003EHORIZONTAL ? (float) num2 : (float) num1); if (!this.points.contains((object) controlPoint)) this.points.add((object) controlPoint); } if (item != dataset.getItemCount(series) - 1) return; XYLineAndShapeRenderer.State state1 = (XYLineAndShapeRenderer.State) state; if (this.points.size() > 1) { XYSplineRenderer.ControlPoint controlPoint1 = (XYSplineRenderer.ControlPoint) this.points.get(0); ((Path2D.Float) state1.seriesPath).moveTo(controlPoint1.x, controlPoint1.y); if (this.points.size() == 2) { XYSplineRenderer.ControlPoint controlPoint2 = (XYSplineRenderer.ControlPoint) this.points.get(1); ((Path2D.Float) state1.seriesPath).lineTo(controlPoint2.x, controlPoint2.y); } else { int length = this.points.size(); float[] numArray1 = new float[length]; float[] numArray2 = new float[length]; float[] numArray3 = new float[length]; float[] numArray4 = new float[length]; for (int index = 0; index < length; ++index) { XYSplineRenderer.ControlPoint controlPoint2 = (XYSplineRenderer.ControlPoint) this.points.get(index); numArray2[index] = controlPoint2.x; numArray1[index] = controlPoint2.y; } for (int index = 1; index <= length - 1; ++index) numArray4[index] = numArray2[index] - numArray2[index - 1]; float[] numArray5 = new float[length - 1]; float[] numArray6 = new float[length - 1]; float[] numArray7 = new float[length - 1]; for (int index = 1; index <= length - 2; ++index) { numArray6[index] = (numArray4[index] + numArray4[index + 1]) / 3f; numArray7[index] = numArray4[index + 1] / 6f; numArray5[index] = numArray4[index] / 6f; numArray3[index] = (numArray1[index + 1] - numArray1[index]) / numArray4[index + 1] - (numArray1[index] - numArray1[index - 1]) / numArray4[index]; } this.solveTridiag(numArray5, numArray6, numArray7, numArray3, length - 2); float num3 = numArray2[0]; float num4 = numArray1[0]; ((Path2D.Float) state1.seriesPath).moveTo(num3, num4); for (int index1 = 1; index1 <= length - 1; ++index1) { for (int index2 = 1; index2 <= this.precision; ++index2) { float num5 = numArray4[index1] * (float) index2 / (float) this.precision; float num6 = numArray4[index1] - num5; float num7 = (((float) (-(double) numArray3[index1 - 1] / 6.0) * (num6 + numArray4[index1]) * num5 + numArray1[index1 - 1]) * num6 + ((float) (-(double) numArray3[index1] / 6.0) * (num5 + numArray4[index1]) * num6 + numArray1[index1]) * num5) / numArray4[index1]; float num8 = numArray2[index1 - 1] + num5; ((Path2D.Float) state1.seriesPath).lineTo(num8, num7); } } } this.drawFirstPassShape(g2, pass, series, item, (Shape) state1.seriesPath); } this.points = new Vector(); }
public override void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass) { if (pass == 0 && dataset is IntervalXYDataset && this.getItemVisible(series, item)) { IntervalXYDataset ntervalXyDataset = (IntervalXYDataset) dataset; PlotOrientation orientation = plot.getOrientation(); if (this.drawXError) { double startXvalue = ntervalXyDataset.getStartXValue(series, item); double endXvalue = ntervalXyDataset.getEndXValue(series, item); double yvalue = ntervalXyDataset.getYValue(series, item); RectangleEdge domainAxisEdge = plot.getDomainAxisEdge(); double num1 = domainAxis.valueToJava2D(startXvalue, dataArea, domainAxisEdge); double num2 = domainAxis.valueToJava2D(endXvalue, dataArea, domainAxisEdge); double num3 = rangeAxis.valueToJava2D(yvalue, dataArea, plot.getRangeAxisEdge()); double num4 = this.capLength / 2.0; Line2D.Double double1; Line2D.Double double2; Line2D.Double double3; if (orientation == PlotOrientation.__\u003C\u003EVERTICAL) { double1 = new Line2D.Double(num1, num3, num2, num3); double2 = new Line2D.Double(num1, num3 - num4, num1, num3 + num4); double3 = new Line2D.Double(num2, num3 - num4, num2, num3 + num4); } else { double1 = new Line2D.Double(num3, num1, num3, num2); double2 = new Line2D.Double(num3 - num4, num1, num3 + num4, num1); double3 = new Line2D.Double(num3 - num4, num2, num3 + num4, num2); } if (this.errorPaint != null) g2.setPaint(this.errorPaint); else g2.setPaint(this.getItemPaint(series, item)); if (this.errorStroke != null) g2.setStroke(this.errorStroke); else g2.setStroke(this.getItemStroke(series, item)); g2.draw((Shape) double1); g2.draw((Shape) double2); g2.draw((Shape) double3); } if (this.drawYError) { double startYvalue = ntervalXyDataset.getStartYValue(series, item); double endYvalue = ntervalXyDataset.getEndYValue(series, item); double xvalue = ntervalXyDataset.getXValue(series, item); RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge(); double num1 = rangeAxis.valueToJava2D(startYvalue, dataArea, rangeAxisEdge); double num2 = rangeAxis.valueToJava2D(endYvalue, dataArea, rangeAxisEdge); double num3 = domainAxis.valueToJava2D(xvalue, dataArea, plot.getDomainAxisEdge()); double num4 = this.capLength / 2.0; Line2D.Double double1; Line2D.Double double2; Line2D.Double double3; if (orientation == PlotOrientation.__\u003C\u003EVERTICAL) { double1 = new Line2D.Double(num3, num1, num3, num2); double2 = new Line2D.Double(num3 - num4, num1, num3 + num4, num1); double3 = new Line2D.Double(num3 - num4, num2, num3 + num4, num2); } else { double1 = new Line2D.Double(num1, num3, num2, num3); double2 = new Line2D.Double(num1, num3 - num4, num1, num3 + num4); double3 = new Line2D.Double(num2, num3 - num4, num2, num3 + num4); } if (this.errorPaint != null) g2.setPaint(this.errorPaint); else g2.setPaint(this.getItemPaint(series, item)); if (this.errorStroke != null) g2.setStroke(this.errorStroke); else g2.setStroke(this.getItemStroke(series, item)); g2.draw((Shape) double1); g2.draw((Shape) double2); g2.draw((Shape) double3); } } base.drawItem(g2, state, dataArea, info, plot, domainAxis, rangeAxis, dataset, series, item, crosshairState, pass); }