use of org.jfree.chart.plot.XYPlot in project jgnash by ccavanaugh.
the class SecuritiesHistoryDialog method createChart.
private static JFreeChart createChart(final SecurityNode node) {
Objects.requireNonNull(node);
final List<SecurityHistoryNode> hNodes = node.getHistoryNodes();
final Date max = DateUtils.asDate(hNodes.get(hNodes.size() - 1).getLocalDate());
final Date min = DateUtils.asDate(hNodes.get(0).getLocalDate());
final DateAxis timeAxis = new DateAxis(null);
timeAxis.setVisible(false);
timeAxis.setAutoRange(false);
timeAxis.setRange(min, max);
final NumberAxis valueAxis = new NumberAxis(null);
valueAxis.setAutoRangeIncludesZero(false);
valueAxis.setVisible(false);
final XYAreaRenderer renderer = new XYAreaRenderer();
renderer.setBaseToolTipGenerator(new SecurityItemLabelGenerator(node));
renderer.setOutline(true);
renderer.setSeriesPaint(0, new Color(225, 247, 223));
final XYPlot plot = new XYPlot(null, timeAxis, valueAxis, renderer);
final List<List<SecurityHistoryNode>> groups = node.getHistoryNodeGroupsBySplits();
for (int i = 0; i < groups.size(); i++) {
int size = groups.get(i).size();
Date[] date = new Date[size];
double[] high = new double[size];
double[] low = new double[size];
double[] open = new double[size];
double[] close = new double[size];
double[] volume = new double[size];
for (int j = 0; j < size; j++) {
final SecurityHistoryNode hNode = groups.get(i).get(j);
date[j] = DateUtils.asDate(hNode.getLocalDate());
high[j] = hNode.getAdjustedHigh().doubleValue();
low[j] = hNode.getAdjustedLow().doubleValue();
open[j] = hNode.getAdjustedPrice().doubleValue();
close[j] = hNode.getAdjustedPrice().doubleValue();
volume[j] = hNode.getVolume();
}
final AbstractXYDataset data = new DefaultHighLowDataset(node.getDescription() + i, date, high, low, open, close, volume);
plot.setDataset(i, data);
}
plot.setInsets(new RectangleInsets(1, 1, 1, 1));
final JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, false);
chart.setBackgroundPaint(null);
return chart;
}
use of org.jfree.chart.plot.XYPlot in project jgnash by ccavanaugh.
the class SecuritiesHistoryDialog method initComponents.
private void initComponents() {
dateField = new DatePanel();
closeField = new JFloatField();
lowField = new JFloatField();
highField = new JFloatField();
securityCombo = new SecurityComboBox();
volumeField = new JIntegerField();
updateButton = new JButton(rb.getString("Button.UpdateOnline"), IconUtils.getIcon("/jgnash/resource/applications-internet.png"));
deleteButton = new JButton(rb.getString("Button.Delete"));
clearButton = new JButton(rb.getString("Button.Clear"));
applyButton = new JButton(rb.getString("Button.Add"));
closeButton = new JButton(rb.getString("Button.Close"));
model = new HistoryModel();
table = new HistoryTable();
table.setModel(model);
table.setPreferredScrollableViewportSize(new Dimension(150, 120));
table.setCellSelectionEnabled(false);
table.setColumnSelectionAllowed(false);
table.setRowSelectionAllowed(true);
table.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
table.setRowSorter(new TableRowSorter<>(model));
table.setFillsViewportHeight(true);
// create an empty chart for panel construction
chartPanel = new ChartPanel(new JFreeChart(new XYPlot()));
chartPanel.setPreferredSize(new Dimension(150, 90));
applyButton.addActionListener(this);
clearButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
securityCombo.addActionListener(this);
closeButton.addActionListener(this);
}
use of org.jfree.chart.plot.XYPlot in project processdash by dtuma.
the class XYChart method addTrendLine.
private void addTrendLine(JFreeChart chart, XYDataset dataset) {
XYPlot plot = chart.getXYPlot();
plot.setDataset(1, dataset);
plot.setRenderer(1, new StandardXYItemRenderer(StandardXYItemRenderer.LINES));
}
Aggregations