public static void Main(string[] args) { /// <summary> /// Getting time series /// </summary> TimeSeries series = CsvTradesLoader.loadBitstampSeries().subseries(0, Period.hours(6)); /// <summary> /// Creating the OHLC dataset /// </summary> OHLCDataset ohlcDataset = createOHLCDataset(series); /// <summary> /// Creating the additional dataset /// </summary> TimeSeriesCollection xyDataset = createAdditionalDataset(series); /// <summary> /// Creating the chart /// </summary> JFreeChart chart = ChartFactory.createCandlestickChart("Bitstamp BTC price", "Time", "USD", ohlcDataset, true); // Candlestick rendering CandlestickRenderer renderer = new CandlestickRenderer(); renderer.AutoWidthMethod = CandlestickRenderer.WIDTHMETHOD_SMALLEST; XYPlot plot = chart.XYPlot; plot.Renderer = renderer; // Additional dataset int index = 1; plot.setDataset(index, xyDataset); plot.mapDatasetToRangeAxis(index, 0); XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(true, false); renderer2.setSeriesPaint(index, Color.blue); plot.setRenderer(index, renderer2); // Misc plot.RangeGridlinePaint = Color.lightGray; plot.BackgroundPaint = Color.white; NumberAxis numberAxis = (NumberAxis)plot.RangeAxis; numberAxis.AutoRangeIncludesZero = false; plot.DatasetRenderingOrder = DatasetRenderingOrder.FORWARD; /// <summary> /// Displaying the chart /// </summary> displayChart(chart); }
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; }
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; }