使用JfreeChart制作曲线图Demo

import java.awt.BasicStroke;
import java.awt.Color;

import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYSplineRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

public class Test2 {
	public static void main(String[] args) {
		// 注入数据1
		XYSeries linedataset1 = new XYSeries("线1");
		linedataset1.add(1, 13.79);
		linedataset1.add(5, 6.81);
		linedataset1.add(30, 4.29);
		linedataset1.add(200, 3.36);

		// 注入数据2
		XYSeries linedataset2 = new XYSeries("线2");
		linedataset2.add(1, 3.79);
		linedataset2.add(3, 4.29);
		linedataset2.add(15, 6.81);
		linedataset2.add(50, 13.36);
		linedataset2.add(200, 3.36);

		//建立数据模型
		XYSeriesCollection localXYSeriesCollection = new XYSeriesCollection();
		localXYSeriesCollection.addSeries(linedataset1);
		localXYSeriesCollection.addSeries(linedataset2);

		XYSplineRenderer splinerenderer = new XYSplineRenderer();
		//设置线的笔触(粗细)
		splinerenderer.setSeriesStroke(0, new BasicStroke(4.0F, 1, 1, 1.0F));
		splinerenderer.setSeriesStroke(1, new BasicStroke(4.0F, 1, 1, 1.0F));
		
		splinerenderer.setPrecision(100);// 设置精度差(影响曲线弧度)
		
		
		//设置横纵坐标描述
		NumberAxis xAxis = new NumberAxis("描述1");
		xAxis.setAutoRangeIncludesZero(false);
		NumberAxis yAxis = new NumberAxis("描述2");
		yAxis.setAutoRangeIncludesZero(false);

		XYPlot plot = new XYPlot(localXYSeriesCollection, xAxis, yAxis, splinerenderer);
		// x轴 // 分类轴网格是否可见
		plot.setDomainGridlinesVisible(true);
		// y轴 //数据轴网格是否可见
		plot.setRangeGridlinesVisible(true);
		// 是否显示格子线
		plot.setRangeGridlinesVisible(true);
		// 设置背景透明度
		plot.setBackgroundAlpha(0.3f);
		// 数据轴(y轴)色彩
		plot.setRangeGridlinePaint(Color.black);
		// 分类轴(x轴)色彩
		plot.setDomainGridlinePaint(Color.black);
		NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
		//数据轴的数据标签(可以只显示整数标签,需要将AutoTickUnitSelection设false)
		rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		//是否强制在自动选择的数据范围中包含0 
		rangeAxis.setAutoRangeIncludesZero(true);
		//设置坐标轴间距但必须满足一定条件
		rangeAxis.setUpperMargin(1);// Y轴间距
		rangeAxis.setLowerMargin(1);//X轴间距
		//坐标轴标题旋转角度(纵坐标可以旋转)
		rangeAxis.setLabelAngle(Math.PI / 2.0); 

		JFreeChart chart = new JFreeChart("测试", // 标题
				JFreeChart.DEFAULT_TITLE_FONT, // 标题的字体,这样就可以解决中文乱码的问题
				plot, true);

		ChartFrame pieFrame = new ChartFrame("统计图", chart);
		pieFrame.pack();
		pieFrame.setVisible(true);
	}
}

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值