JFreeChart学习(二)-动态生成图表,并设置图表的字体格式,显示样式
来源:互联网 发布:微商达人软件代理加盟 编辑:程序博客网 时间:2024/05/17 00:59
JFreeChart动态生成图表,并设置图表的字体格式,显示样式
package jfreechart;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JFrame;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.XYItemRenderer;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;import org.jfree.chart.title.TextTitle;import org.jfree.data.time.Day;import org.jfree.data.time.Hour;import org.jfree.data.time.Minute;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;/** * * @author {userName} * @version 1.0, 2016-12-13 * @since 1.0 */public class TimeDynamicSeries extends JPanel { private TimeSeries appleSeries; private TimeSeries orangeSeries; public TimeDynamicSeries() { super(new BorderLayout()); appleSeries = new TimeSeries("苹果"); orangeSeries = new TimeSeries("桔子"); TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); timeseriescollection.addSeries(appleSeries); timeseriescollection.addSeries(orangeSeries); JFreeChart timeSeriesChart = ChartFactory.createTimeSeriesChart( "时序图动态测试", "时间", "数量", timeseriescollection, true, true, false); configFont(timeSeriesChart); setXYPlot(timeSeriesChart); ChartPanel chartpanel = new ChartPanel(timeSeriesChart, true); add(chartpanel); createThread();//先生成图表,再往里面加数据 } /** * 设置图表中的字体样式 * @param timeSeriesChart */ private void configFont(JFreeChart timeSeriesChart) { Font xfont = new Font("宋体", Font.PLAIN, 12);// X轴 Font yfont = new Font("宋体", Font.PLAIN, 12);// Y轴 Font kfont = new Font("黑体", Font.PLAIN, 12);// 底部 Font titleFont = new Font("微软雅黑", Font.BOLD, 15); // 图片标题 XYPlot plot = timeSeriesChart.getXYPlot();// 图形的绘制结构对象 // 横轴标题字体 plot.getDomainAxis().setLabelFont(xfont); // 设置横轴标尺值中的字体 plot.getDomainAxis().setTickLabelFont(kfont); //横轴标注中的字体 timeSeriesChart.getLegend().setItemFont(kfont); // Y 轴 ValueAxis rangeAxis = plot.getRangeAxis(); //纵轴标题字体 rangeAxis.setLabelFont(yfont); //纵轴字体颜色 rangeAxis.setLabelPaint(Color.BLUE); //纵轴标尺中的字体 rangeAxis.setTickLabelFont(yfont); // 图片标题 timeSeriesChart.setTitle(new TextTitle(timeSeriesChart.getTitle().getText(), titleFont)); } public static void main(String[] args) { JFrame jframe = new JFrame("时序图动态测试"); TimeDynamicSeries demo = new TimeDynamicSeries(); jframe.getContentPane().add(demo, "Center"); jframe.pack(); jframe.setVisible(true); jframe.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent windowevent) { System.exit(0); } }); } private void createThread() { CodeThread codeThread = new CodeThread(); Thread t = new Thread(codeThread); t.start(); } /** * 设置图表中的曲线等 * @param timeSeriesChart */ private void setXYPlot(JFreeChart timeSeriesChart) { XYPlot plot = timeSeriesChart.getXYPlot();// 图形的绘制结构对象 plot.setDomainGridlinePaint(Color.lightGray); plot.setRangeGridlinePaint(Color.YELLOW); XYItemRenderer r = plot.getRenderer(); if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r; renderer.setBaseShapesVisible(true);//让每个点的图标可见 renderer.setBaseShapesFilled(false);//每个点为空心 } } /** * 动态生成数据 */ public class CodeThread implements Runnable { @Override public void run() { try { for (int i = 1; i < 60; i++) { Day day = new Day(21, 9, 2008); Hour hour22 = new Hour(22, day); Hour hour23 = new Hour(23, day); appleSeries.add(new Minute(i, hour22), 1.1); Thread.sleep(1000); appleSeries.add(new Minute(i + 1, hour22), 1.2); Thread.sleep(1000); appleSeries.add(new Minute(i + 2, hour22), 1.3); Thread.sleep(1000); orangeSeries.add(new Minute(i + 3, hour23), 1.4); Thread.sleep(1000); orangeSeries.add(new Minute(i + 4, hour23), 1.5); Thread.sleep(1000); orangeSeries.add(new Minute(i + 5, hour23), 1.6); i = i + 6; } } catch (InterruptedException ex) { Logger.getLogger(TimeDynamicSeries.class.getName()).log(Level.SEVERE, null, ex); } } }}
0 0
- JFreeChart学习(二)-动态生成图表,并设置图表的字体格式,显示样式
- 使用JFreeChart生成各种样式的图表
- 使用JFreeChart生成图表
- JFreeChart 生成图表
- JFreeChart 图表生成
- jfreeChart生成图表
- jfreechart 图表生成实例
- jfreechart生成图表
- Jfreechart图表生成方法
- JFreeChart生成图表
- 基于jfreechart的图表生成方法
- Ext图表的动态生成
- 图表jfreechart的简介
- 使用JFreeChart生成热点图表
- 使用JFreeChart生成热点图表
- 使用JFreeChart生成热点图表
- 使用JFreeChart生成热点图表
- 利用JFreeChart生成组合图表
- Leetcode 474. Ones and Zeroes 01组合 解题报告
- Linux常用指令
- SQL练习 demo6_group by_having分组约束的应用
- QQ空间 代码秒赞
- Java反射机制详解
- JFreeChart学习(二)-动态生成图表,并设置图表的字体格式,显示样式
- c程序
- 常涉及的图像特征
- linux下安装svn
- 字符串插入
- 手机号码检测开通微信
- 我的试验__mybatis中resultType使用javaBean和Map的区别
- Ubuntu增加Swap空间大小
- python操作excel的包(openpyxl, xlsxwriter)