Saya memiliki kode ini untuk menggambar grafik, ini berfungsi dengan baik. Saya butuh dua hal di sini
- pada sumbu domain (x) saya ingin dapat menggulir.
- Pada spidol saya melihat garis tebal dan tebal. Saya ingin melihat beberapa teks yang dapat dibaca untuk penanda ini.
Untuk saat ini saya melihat keluaran ini
dan setelah memperbesar saya melihat ini
Juga pada sumbu domain saya memiliki nilai millis. dapatkah saya memetakannya ke tanggal yang dapat dibaca manusia?
public class Grapher extends ApplicationFrame { public Grapher(final String title, List<PriceModel> priceModels) { super(title); final XYSeries series = new XYSeries("foo"); double max = Double.MIN_VALUE, min = Double.MAX_VALUE; for (int i = 0; i < priceModels.size(); i++) { double price = priceModels.get(i).getPrice(); if (price < min) { min = price; } if (price > max) { max = price; } series.add((double) priceModels.get(i).getDate(), price); } final XYSeriesCollection data = new XYSeriesCollection(series); final JFreeChart chart = ChartFactory.createXYLineChart( "XY Series Demo", "X", "Y", data, PlotOrientation.VERTICAL, true, true, false ); for (int i = 0; i < priceModels.size(); i++) { if (priceModels.get(i).getAction() != null) { Marker marker = new ValueMarker((double) priceModels.get(i).getDate()); marker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT); marker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); if (priceModels.get(i).getAction() == Types.Action.SELL) { marker.setPaint(Color.green); marker.setLabel("SELL"); } else { marker.setPaint(Color.red); marker.setLabel("BUY"); } marker.setStroke(new BasicStroke(10.0f)); chart.getXYPlot().addDomainMarker(marker); } } chart.getXYPlot().setBackgroundPaint(Color.white); chart.getXYPlot().getRenderer().setPaint(Color.BLUE); chart.getXYPlot().getRangeAxis().setRange(min - 1, max + 1); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setBackground(Color.WHITE); chartPanel.setRangeZoomable(true); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); } public static void draw(List<PriceModel> priceModels) { final Grapher demo = new Grapher("foo", priceModels); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } }
chartPane
ke dalamJScrollPane
? - person MadProgrammer   schedule 22.05.2017