import java.awt.Color;
import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.HorizontalAlignment;
import org.jfree.ui.RectangleEdge;
public class MultiAxises {
XYSeriesCollection dataset1;
XYSeriesCollection dataset2;
XYSeriesCollection dataset3;
JFreeChart chart;
XYPlot plot;
public MultiAxises() {
// 生成数据
XYSeries series1 = new XYSeries("系列1");
series1.add(1, 2);
series1.add(2, 4);
series1.add(7, 6);
XYSeries series2 = new XYSeries("系列2");
series2.add(5, 2);
series2.add(3, 4);
series2.add(7, 3);
XYSeries series3 = new XYSeries("系列3");
series3.add(3, 2);
series3.add(5, 4);
series3.add(4, 6);
dataset1 = new XYSeriesCollection();
dataset2 = new XYSeriesCollection();
dataset3 = new XYSeriesCollection();
dataset1.addSeries(series1);
dataset2.addSeries(series2);
dataset3.addSeries(series3);
chart = ChartFactory.createXYLineChart("MultiAxis", "X axis",
"First Y Axis", dataset1, PlotOrientation.VERTICAL, true, true,
false);
plot = chart.getXYPlot();
// 添加第2个Y轴
NumberAxis axis2 = new NumberAxis("Second Axis");
// -- 修改第2个Y轴的显示效果
axis2.setAxisLinePaint(Color.BLUE);
axis2.setLabelPaint(Color.BLUE);
axis2.setTickLabelPaint(Color.BLUE);
plot.setRangeAxis(1, axis2);
plot.setDataset(1, dataset2);
plot.mapDatasetToRangeAxis(1, 1);
// -- 修改第2条曲线显示效果
XYLineAndShapeRenderer render2 = new XYLineAndShapeRenderer();
render2.setSeriesPaint(0, Color.BLUE);
plot.setRenderer(1, render2);
// 添加第3个Y轴
NumberAxis axis3 = new NumberAxis("Third Axis");
axis3.setAxisLinePaint(Color.GREEN);
axis3.setLabelPaint(Color.GREEN);
axis3.setTickLabelPaint(Color.GREEN);
plot.setRangeAxis(2, axis3);
plot.setDataset(2, dataset3);
plot.mapDatasetToRangeAxis(2, 2);
XYLineAndShapeRenderer render3 = new XYLineAndShapeRenderer();
render3.setSeriesPaint(0, Color.GREEN);
plot.setRenderer(2, render3);
TextTitle copyright = new TextTitle(" 小龙飞翔@Java Eye ");
copyright.setPosition(RectangleEdge.BOTTOM);
copyright.setHorizontalAlignment(HorizontalAlignment.RIGHT);
copyright.setFont(new Font("黑体", 12, 12));
chart.addSubtitle(copyright);
chart.getLegend().setItemFont(new Font("黑体", 12, 12));
}
public static void main(String[] agrs) {
MultiAxises obj = new MultiAxises();
ChartFrame frame = new ChartFrame("多坐标轴", obj.chart);
frame.pack();
frame.setVisible(true);
}
}
分享到:
相关推荐
public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...
JFreeChart是Java平台上的一个开源图表库,提供多种类型的图表,包括折线图、饼图、散点图以及我们关注的K线图。通过JFreeChart,我们可以自定义K线图的绘制逻辑,实现停牌期间的数据填充,使图表连续显示,增强分析...
JFreeChart的`XYPlot`类则允许我们创建具有复杂特性的折线图,如散点图、区域图等。 在实际应用中,我们可能需要从数据库或文件中读取数据,然后使用Java的数据处理库,如Apache Commons Math,进行计算和预处理。...
JFreeChart支持基于分类数据集和XY数据集的折线图,可以根据需求进行高度定制。 **2.5 XY图** XY图是另一种类型的折线图,特别适用于展示两个变量之间的关系。JFreeChart提供了丰富的功能来创建和定制XY图。 **...
JFreeChart 支持多种类型的折线图,如简单折线图、时间序列折线图等。 **2.5 XY 图** XY 图适用于需要精确控制坐标轴的场景,如科学数据可视化。JFreeChart 的 XY 图功能强大,能够满足大多数需求。 **2.6 时间...
JFreeChart是一款免费且开源的Java图表库,它提供了多种类型的图表绘制功能,如饼图、条形图、折线图等。JFreeChart适用于各种Java应用程序中,包括但不限于桌面应用、Web应用以及移动应用。它不仅能够生成高质量的...
JFreeChart 支持创建标准折线图、时序折线图等多种类型的折线图。 ##### 3.4 XY 图 (XY Plots) XY 图可用于展示两个变量之间的关系。JFreeChart 提供了多种 XY 图样式,如散点图、气泡图等。 ##### 3.5 时间序列...
这个库广泛应用于数据分析、报表和可视化应用中,支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特图等。在"JFreeChart示例"中,我们将会深入探讨如何利用 JFreeChart 创建这些图表,并以Web方式展示它们...
1. **组合图表**:JFreeChart 支持将多种类型的图表组合在一个图表中,比如将折线图与柱状图结合,以更直观地展示多元数据关系。 2. **折线图**:用于显示数据随时间变化的趋势,是数据分析中最常见的图表之一。...
JFreeChart提供了灵活的方式来绘制折线图,并支持添加数据标签、调整线条样式等功能。 - **XY坐标图**:适用于展示两个连续变量之间的关系。JFreeChart中的XY坐标图可以用来展示散点图、曲线图等多种图表类型。 - **...
- **示例:** 展示了基本的折线图和带标记点的折线图。 **2.5 XY 图 (XY Plots)** - **描述:** XY 图用于显示两个变量之间的关系。 - **示例:** 提供了散点图和带有平滑曲线的 XY 图。 **2.6 时间序列图表 (Time...
- **基于分类数据集的折线图**:介绍如何基于分类数据集创建折线图,并给出代码示例。 #### 七、时间序列图表 - **简介**:专门针对时间序列数据设计的图表类型。 - **创建时间序列图表**:提供创建时间序列图表的...
- **折线图 (Line Charts)**:折线图用于显示数据随时间的变化趋势。通过不同的数据集类型,可以创建标准折线图或XY折线图。 - **散点图 (XY Scatter Plots)**:用于显示两个变量之间的关系。每个数据点的位置由其X...
- **区域图(Area Charts)**:类似折线图,但会填充线条下的区域,以更直观地展示数据的累积效果。 - **差异图(Difference Chart)**:突出显示两个数据集之间的差异。 - **阶梯图(Step Chart)**:显示数据在特定点的...
JFreeChart不仅支持常见的图表类型,如饼图、柱状图、折线图等,还支持一些高级图表类型,如时间序列图、散点图、甘特图等。此外,该库还包括了图表自定义样式的功能,允许开发者根据需求调整图表的外观。 #### ...
- **折线图(Line Chart)**:解释如何创建基本的折线图。 - **XY坐标图(XY Plots)**:展示如何制作XY坐标图,包括散点图和其他基于XY坐标的图表。 - **时间序列图表(Time Series Charts)**:讨论如何使用时间轴...
JFreeChart支持创建标准的折线图以及带误差线的折线图。 **2.5 XY图** XY图(散点图)用于显示两个变量之间的关系。这种图表可以用来识别模式、趋势或者异常值。 **2.6 时间序列图** 时间序列图专门用于显示随...
- **折线图(Line Charts)**:支持多数据系列。 - **散点图(Scatter Plots)**:用于展示数据点分布。 - **时间序列图(Time Series Charts)**:包括移动平均、高开低收图(High-Low-Open-Close charts)和蜡烛图...
3. **折线图(Line Charts)**:展示数据随时间的变化趋势,支持CategoryDataset和XYDataset两种数据集。 4. **XY(散点图)和时序图(Time Series)**:用于显示两个变量之间的关系或时间序列数据。 5. **柱状图...