JFreeChart画折线图

摘要:
packagelb;importjava.awt.Color;importjava.awt.Font;importjava.io.File;importjava.text.DecimalFormat;importorg.jfree.chart.ChartFactory;importorg.jfree.chart.ChartFrame;importorg.jfree.chart.ChartUtili

package lb;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.text.DecimalFormat;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.RectangleInsets;
public class Line {

public static void main(String[] args) {
StandardChartTheme mChartTheme = new StandardChartTheme("CN");
mChartTheme.setLargeFont(new Font("黑体", Font.BOLD, 20));
mChartTheme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15));
mChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));
ChartFactory.setChartTheme(mChartTheme);
CategoryDataset mDataset = GetDataset();
JFreeChart mChart = ChartFactory.createLineChart(
"折线图",//图名字
"邻居用户数",//横坐标
"RMSE",//纵坐标
mDataset,//数据集
PlotOrientation.VERTICAL,
true, // 显示图例
true, // 采用标准生成器
false);// 是否生成超链接
//.LIGHT_GRAY
CategoryPlot mPlot = (CategoryPlot)mChart.getPlot();
mPlot.setBackgroundPaint(Color.white);
mPlot.setRangeGridlinePaint(Color.BLUE);//背景底部横虚线
mPlot.setOutlinePaint(Color.RED);//边界线
/*
* Y轴设置
*/
NumberAxis vn = (NumberAxis) mPlot.getRangeAxis();
// DecimalFormat df = new DecimalFormat("#0.00");
// vn.setNumberFormatOverride(df); // 数据轴数据标签的显示格式
vn.setUpperMargin(0.1);
vn.setLowerMargin(0.1);
vn.setAutoRangeMinimumSize(0.01);//最小跨度
vn.setLowerBound(0.70);//最小值显示
vn.setUpperBound(1.10);
LineAndShapeRenderer lasp = (LineAndShapeRenderer) mPlot.getRenderer();// 获取显示线条的对象
lasp.setBaseShapesVisible(true);// 设置拐点是否可见/是否显示拐点
lasp.setDrawOutlines(true);// 设置拐点不同用不同的形状
lasp.setUseFillPaint(true);// 设置线条是否被显示填充颜色
lasp.setBaseFillPaint(Color.BLACK);//// 设置拐点颜色
/*
* X轴
*/
CategoryAxis domainAxis = mPlot.getDomainAxis();
//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD);
domainAxis.setLowerMargin(-0.08);
// domainAxis.setCategoryMargin(0.5);;
//System.out.println(domainAxis.getCategoryMargin());;
// domainAxis.setLabelFont(new Font("宋书", Font.PLAIN, 15)); // 设置横轴字体
// domainAxis.setTickLabelFont(new Font("宋书", Font.PLAIN, 15));// 设置坐标轴标尺值字体
// domainAxis.setLowerMargin(0.01);// 左边距 边框距离
// domainAxis.setUpperMargin(0.06);// 右边距 边框距离,防止最后边的一个数据靠近了坐标轴。
// domainAxis.setMaximumCategoryLabelLines(10);
// domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);// 横轴 lable 的位置 横轴上的 Lable 45度倾斜 DOWN_45
// domainAxis.setm
try {
File file = new File("c:/student.png");
ChartUtilities.saveChartAsPNG(file,mChart,400,300);//把报表保存为文件
}catch (Exception e) {
String s = e.getLocalizedMessage();
s = e.getMessage();
s = e.toString();
}
ChartFrame mChartFrame = new ChartFrame("折线图", mChart);
mChartFrame.pack();
mChartFrame.setVisible(true);

}
public static CategoryDataset GetDataset()
{
DefaultCategoryDataset mDataset = new DefaultCategoryDataset();
mDataset.addValue(1.10, "First", "5");
mDataset.addValue(1.05, "First", "10");
mDataset.addValue(1.00, "First", "15");
mDataset.addValue(0.95, "First", "20");
mDataset.addValue(0.90, "First", "25");
mDataset.addValue(1.05, "Second", "5");
mDataset.addValue(1.00, "Second", "10");
mDataset.addValue(0.96, "Second", "15");
mDataset.addValue(0.91, "Second", "20");
mDataset.addValue(0.88, "Second", "25");
mDataset.addValue(1.02, "Third", "5");
mDataset.addValue(0.90, "Third", "10");
mDataset.addValue(0.88, "Third", "15");
mDataset.addValue(0.85, "Third", "20");
mDataset.addValue(0.7, "Third", "25");
return mDataset;
}

}

JFreeChart画折线图第1张

免责声明:文章转载自《JFreeChart画折线图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【开源】一个基于智能问答的聊天机器人实现gcc编译链接原理及使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WebService开发实例(Axis2实现,无需安装,快速实现)

曾经做过的项目里涉及Android客户端向服务器发送请求,服务器访问数据库获得数据并返回给Android客户端。当时Android客户端与服务器的通信已经实现,我只负责客户端布局和数据呈现的部分,近日有遇到类似项目,所以计划完整的研究和实现一下整个通信过程。 目前选择的方案是服务器端开启Webservice,Android客户端通过第三方的ksoap ja...

java部署web service的方式

部署web service的方式一般有两种: 1. 编写java源文件,将文件的java后缀改为jws,然后部署到webapps/axis目录下,axia引擎可以直接执行源文件中定义的java方法为web service;另外,要让你的web应用服务器识别jws文件需要确定已在web.xml中配置servlet(如果你依照本文方法采用拷贝axis目录为工...

甘特图收集

vue-gantt-elastic:https://github.com/neuronetio/vue-gantt-elastic dhtmlxgantt:https://dhtmlx.com/blog/use-dhtmlxgantt-vue-js-framework-demo/ https://www.cnblogs.com/pengfei-nie/p/...

微信小程序访问webservice(wsdl)+ axis2发布服务端(Java)

0、主要思路:使用axis2发布webservice服务端,微信小程序作为客户端访问。步骤如下: 1、服务端: 首先微信小程序仅支持访问https的url,且必须是已备案域名。因此前期的服务器端工作需要先做好,本人是申请了个人域名(已备案),并使用阿里云服务器,然后申请免费SSL,通过配置tomcat完成支持https访问。此外,intellJ IDE的j...

echarts实现地图漫入漫出效果

一、需求:效果图如下,各国家数据呈现流入中国效果(漫入) 二、前端如何实现 1. 实现方式:使用echarts,详细配置项可参见echarts官网 2. 实现分析: 地图实现可使用echarts的geo组件(geo: 地理坐标系). geo组件需要引入对应的地图数据,此处的引入方式是引入JSON 文件,通过 AJAX 异步加载后手动注册。 地图上的线动...

WPF 应用

引用:LiveCharts,LiveCharts.Wpf 1. 示例 折线图 <Window ... xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"> <lvc:CartesianChart> //折线...