Code: Select all
import javax.swing.*;
import java.awt.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.axis.LogarithmicAxis;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.*;
import org.jfree.data.xy.*;
public class LogarithmicTest {
ChartPanel chartPanel;
JFreeChart chart;
AbstractXYDataset xyDataset;
public void test() {
XYSeries series1 = new XYSeries("New Series");
XYSeries series2 = new XYSeries("Assay2");
series1.add(20.0, 10.0);
series1.add(40.0, 20.0);
series1.add(70.0, 50.0);
series1.add(80.1, 35.2);
series2.add(10.0, 15.0);
series2.add(35.0, 25.0);
series2.add(67.0, 47.0);
series2.add(83.1, 30.2);
XYSeriesCollection data = new XYSeriesCollection();
data.addSeries(series1);
data.addSeries(series2);
xyDataset = data;
chart = ChartFactory.createXYLineChart(
"MyLogartihmicChart",
"X",
"Y",
xyDataset,
PlotOrientation.VERTICAL,
false,
false,
false);
LogarithmicAxis logX = new LogarithmicAxis("X");
logX.setRange(new Range(1,90));
LogarithmicAxis logY = new LogarithmicAxis("Y");
logY.setRange(new Range(1,55));
chart.getXYPlot().setRangeAxis(logY); // Y
chart.getXYPlot().setDomainAxis(logX); //X
StandardXYItemRenderer rr = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES_AND_LINES);
rr.setPlotImages(true);
chart.getXYPlot().setRenderer(rr);
chartPanel = new ChartPanel(chart);
chartPanel.setMouseZoomable(true);
JFrame frame = new JFrame("JFreeChartTest");
frame.setLayout(new BorderLayout());
frame.setSize(600, 450);
frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
frame.setVisible(true);
}
}