目前我正在制作图表并希望实现输出。我想实现两件事。
- 显示股票数据的烛台图。[完毕]
- 在蜡烛上方或下方显示股票分割日志。[待办的]
我正在使用 JFreeChart SDK 来构建图表。我正在使用 OHLCDataItem[] 来构建股票的每日高/低等数据。不幸的是,jfreechart 没有任何 OHLCDataItem 扩展来在蜡烛上显示附加信息(徽标 + 文本元数据)。
示例代码:
TimeSeries timeSeriesDailyMovingAverage = new TimeSeries("day moving average");
List<OHLCDataItem> dataItems = new ArrayList<OHLCDataItem>(); //to collect High low close prices
OHLCDataItem item = new OHLCDataItem(date, open, high, low, adjClose, volume);//this code is in loop with do that more data can be added for each day
dataItems.add(item);
OHLCDataItem[] data = dataItems.toArray(new OHLCDataItem[dataItems.size()]);
OHLCDataset dataset = new DefaultOHLCDataset(symbol, data);
//now initializing the candleStickRanderer and setting its properties series strock + paint
CandlestickRenderer CandleStickRenderer = new CandlestickRenderer();
XYLineAndShapeRenderer LineRenderer = new XYLineAndShapeRenderer(true, false);
HighLowRenderer OHLCRenderer = new HighLowRenderer();
DateAxis domainAxis = new DateAxis();
NumberAxis rangeAxis = new NumberAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits());
XYPlot plot = new XYPlot(dataset, domainAxis, rangeAxis, LineRenderer);//set other properties
JFreeChart chart = new JFreeChart(info, new Font("SansSerif", Font.PLAIN, 15), plot, false);
ChartPanel chartPanel = new ChartPanel(chart);
JPanel panel = new JPanel(new BorderLayout());
panel.add(chartPanel, BorderLayout.CENTER);
getContentPane().add(panel);
XYPlot xyplot = (XYPlot) chart.getPlot();
xyplot.setRenderer(CandleStickRenderer);
这是一些运行良好的粗略代码。我从蜡烛图中得到了想要的结果。 蜡烛棒的当前输出 但我不知道如何根据数据集在 XYPlot 上添加文本/徽标。
我想要实现的是,在特定蜡烛的底部/顶部添加包含文本信息的文本/或形状。如果有人可以根据数据集指导我如何做到这一点,那将是一个很大的帮助。
所需的输出如下图所示。 期望的输出
或 所需的输出