📄 chartfactory.java
字号:
* @param urls configure chart to generate URLs?
*
* @return an XY bar chart.
*/
public static JFreeChart createXYBarChart(String title,
String xAxisLabel,
String yAxisLabel,
IntervalXYDataset data,
PlotOrientation orientation,
boolean legend,
boolean tooltips,
boolean urls) {
DateAxis dateAxis = new DateAxis(xAxisLabel);
ValueAxis valueAxis = new NumberAxis(yAxisLabel);
XYToolTipGenerator tooltipGenerator = null;
if (tooltips) {
tooltipGenerator = new StandardXYToolTipGenerator();
}
XYURLGenerator urlGenerator = null;
if (urls) {
urlGenerator = new StandardXYURLGenerator();
}
XYBarRenderer renderer = new XYBarRenderer();
renderer.setToolTipGenerator(tooltipGenerator);
renderer.setURLGenerator(urlGenerator);
XYPlot plot = new XYPlot(data, dateAxis, valueAxis, renderer);
plot.setOrientation(orientation);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates and returns a default instance of a high-low-open-close chart.
*
* @param title the chart title.
* @param timeAxisLabel a label for the time axis.
* @param valueAxisLabel a label for the value axis.
* @param data the dataset for the chart.
* @param legend a flag specifying whether or not a legend is required.
*
* @return a high-low-open-close chart.
*/
public static JFreeChart createHighLowChart(String title,
String timeAxisLabel,
String valueAxisLabel,
HighLowDataset data,
boolean legend) {
ValueAxis timeAxis = new DateAxis(timeAxisLabel);
NumberAxis valueAxis = new NumberAxis(valueAxisLabel);
HighLowRenderer renderer = new HighLowRenderer();
renderer.setToolTipGenerator(new HighLowToolTipGenerator());
XYPlot plot = new XYPlot(data, timeAxis, valueAxis, renderer);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates and returns a default instance of a high-low-open-close chart with
* a special timeline. This timeline can be a {@link org.jfree.chart.axis.SegmentedTimeline}
* such as the Monday trough Friday timeline that will remove Saturdays and Sundays from
* the axis.
*
* @param title the chart title.
* @param timeAxisLabel a label for the time axis.
* @param valueAxisLabel a label for the value axis.
* @param data the dataset for the chart.
* @param timeline the timeline.
* @param legend a flag specifying whether or not a legend is required.
*
* @return a high-low-open-close chart.
*/
public static JFreeChart createHighLowChart(String title,
String timeAxisLabel,
String valueAxisLabel,
HighLowDataset data,
Timeline timeline,
boolean legend) {
ValueAxis timeAxis = new DateAxis(timeAxisLabel, timeline);
NumberAxis valueAxis = new NumberAxis(valueAxisLabel);
HighLowRenderer renderer = new HighLowRenderer();
renderer.setToolTipGenerator(new HighLowToolTipGenerator());
XYPlot plot = new XYPlot(data, timeAxis, valueAxis, renderer);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates and returns a default instance of a candlesticks chart.
*
* @param title the chart title.
* @param timeAxisLabel a label for the time axis.
* @param valueAxisLabel a label for the value axis.
* @param data the dataset for the chart.
* @param legend a flag specifying whether or not a legend is required.
*
* @return a candlestick chart.
*/
public static JFreeChart createCandlestickChart(String title,
String timeAxisLabel,
String valueAxisLabel,
HighLowDataset data,
boolean legend) {
ValueAxis timeAxis = new DateAxis(timeAxisLabel);
NumberAxis valueAxis = new NumberAxis(valueAxisLabel);
XYPlot plot = new XYPlot(data, timeAxis, valueAxis, null);
plot.setRenderer(new CandlestickRenderer());
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates and returns a default instance of a signal chart.
*
* @param title the chart title.
* @param timeAxisLabel a label for the time axis.
* @param valueAxisLabel a label for the value axis.
* @param data the dataset for the chart.
* @param legend a flag specifying whether or not a legend is required.
*
* @return a signal chart.
*/
public static JFreeChart createSignalChart(String title,
String timeAxisLabel,
String valueAxisLabel,
SignalsDataset data,
boolean legend) {
ValueAxis timeAxis = new DateAxis(timeAxisLabel);
NumberAxis valueAxis = new NumberAxis(valueAxisLabel);
XYPlot plot = new XYPlot(data, timeAxis, valueAxis, null);
plot.setRenderer(new SignalRenderer());
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates a stepped XY plot with default settings.
*
* @param title the chart title.
* @param xAxisLabel a label for the X-axis.
* @param yAxisLabel a label for the Y-axis.
* @param data the dataset for the chart.
* @param orientation the plot orientation (horizontal or vertical).
* @param legend a flag specifying whether or not a legend is required.
* @param tooltips configure chart to generate tool tips?
* @param urls configure chart to generate URLs?
*
* @return A chart.
*/
public static JFreeChart createXYStepChart(String title,
String xAxisLabel,
String yAxisLabel,
XYDataset data,
PlotOrientation orientation,
boolean legend,
boolean tooltips,
boolean urls) {
DateAxis xAxis = new DateAxis(xAxisLabel);
NumberAxis yAxis = new NumberAxis(yAxisLabel);
yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
XYToolTipGenerator tooltipGenerator = null;
if (tooltips) {
tooltipGenerator = new StandardXYToolTipGenerator();
}
XYURLGenerator urlGenerator = null;
if (urls) {
urlGenerator = new StandardXYURLGenerator();
}
XYItemRenderer renderer = new XYStepRenderer(tooltipGenerator, urlGenerator);
XYPlot plot = new XYPlot(data, xAxis, yAxis, null);
plot.setRenderer(renderer);
plot.setOrientation(orientation);
plot.setDomainCrosshairVisible(false);
plot.setRangeCrosshairVisible(false);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates a histogram.
*
* @param title the chart title.
* @param xAxisLabel the x axis label.
* @param yAxisLabel the y axis label.
* @param dataset the dataset.
* @param orientation the orientation (horizontal or vertical).
* @param legend create a legend?
* @param tooltips display tooltips?
* @param urls generate URLs?
*
* @return The chart.
*/
public static JFreeChart createHistogram(String title,
String xAxisLabel,
String yAxisLabel,
IntervalXYDataset dataset,
PlotOrientation orientation,
boolean legend,
boolean tooltips,
boolean urls) {
ValueAxis xAxis = new NumberAxis(xAxisLabel);
ValueAxis yAxis = new NumberAxis(yAxisLabel);
XYToolTipGenerator tooltipGenerator = null;
if (tooltips) {
tooltipGenerator = new StandardXYToolTipGenerator();
}
XYURLGenerator urlGenerator = null;
if (urls) {
urlGenerator = new StandardXYURLGenerator();
}
XYItemRenderer renderer = new XYBarRenderer();
renderer.setToolTipGenerator(tooltipGenerator);
renderer.setURLGenerator(urlGenerator);
XYPlot plot = new XYPlot(dataset, xAxis, yAxis, null);
plot.setRenderer(renderer);
plot.setOrientation(orientation);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates a stacked XY area plot.
*
* @param title the chart title.
* @param xAxisLabel a label for the X-axis.
* @param yAxisLabel a label for the Y-axis.
* @param data the dataset for the chart.
* @param orientation the plot orientation (horizontal or vertical).
* @param legend a flag specifying whether or not a legend is required.
* @param tooltips configure chart to generate tool tips?
* @param urls configure chart to generate URLs?
*
* @return an XY area chart.
*/
public static JFreeChart createStackedAreaXYChart(String title,
String xAxisLabel,
String yAxisLabel,
TableXYDataset data,
PlotOrientation orientation,
boolean legend,
boolean tooltips,
boolean urls) {
NumberAxis xAxis = new NumberAxis(xAxisLabel);
xAxis.setAutoRangeIncludesZero(false);
NumberAxis yAxis = new NumberAxis(yAxisLabel);
XYToolTipGenerator toolTipGenerator = null;
if (tooltips) {
toolTipGenerator = new StandardXYToolTipGenerator();
}
XYURLGenerator urlGenerator = null;
if (urls) {
urlGenerator = new StandardXYURLGenerator();
}
StackedAreaXYRenderer renderer = new StackedAreaXYRenderer(AreaXYRenderer.AREA,
toolTipGenerator,
urlGenerator);
renderer.setOutline(true);
XYPlot plot = new XYPlot(data, xAxis, yAxis, renderer);
plot.setOrientation(orientation);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
/**
* Creates and returns a default instance of a box and whisker chart.
*
* @param title the chart title.
* @param timeAxisLabel a label for the time axis.
* @param valueAxisLabel a label for the value axis.
* @param data the dataset for the chart.
* @param legend a flag specifying whether or not a legend is required.
*
* @return a box and whisker chart.
*/
public static JFreeChart createBoxAndWhiskerChart(String title,
String timeAxisLabel,
String valueAxisLabel,
BoxAndWhiskerDataset data,
boolean legend) {
ValueAxis timeAxis = new DateAxis(timeAxisLabel);
NumberAxis valueAxis = new NumberAxis(valueAxisLabel);
BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer(10.0);
XYPlot plot = new XYPlot(data, timeAxis, valueAxis, renderer);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
return chart;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -