导航:首页 > 源码编译 > java图表页面源码

java图表页面源码

发布时间:2024-03-08 01:07:19

java中使用jfreechart做柱状图,在jsp中显示有问题,

jfreechart中显示柱状图到jsp页面:
package com.test.jfreechart;

import java.awt.Font;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;

public class JFreeChartTest2 extends ApplicationFrame
{
public JFreeChartTest2(String title)
{
super(title);
this.setContentPane(createPanel()); //构造函数中自动创建Java的panel面板
}

public static CategoryDataset createDataset() //创建滑旁柱状图数据集
{
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.setValue(10,"a","管理人员");
dataset.setValue(20,"b","市场人员");
dataset.setValue(40,"c","开发人员");
dataset.setValue(15,"d","其他人员");
return dataset;
}

public static JFreeChart createChart(CategoryDataset dataset) //用数据集创建一个图表
{
JFreeChart chart=ChartFactory.createBarChart("hi", "人员分布",
"人卜乱员数量", dataset, PlotOrientation.VERTICAL, true, true, false); //创建一个JFreeChart
chart.setTitle(new TextTitle("某公司组织结信弊橡构图",new Font("宋体",Font.BOLD+Font.ITALIC,20)));//可以重新设置标题,替换“hi”标题
CategoryPlot plot=(CategoryPlot)chart.getPlot();//获得图标中间部分,即plot
CategoryAxis categoryAxis=plot.getDomainAxis();//获得横坐标
categoryAxis.setLabelFont(new Font("微软雅黑",Font.BOLD,12));//设置横坐标字体
return chart;
}

public static JPanel createPanel()
{
JFreeChart chart =createChart(createDataset());
return new ChartPanel(chart); //将chart对象放入Panel面板中去,ChartPanel类已继承Jpanel
}

public static void main(String[] args)
{
JFreeChartTest2 chart=new JFreeChartTest2("某公司组织结构图");
chart.pack();//以合适的大小显示
chart.setVisible(true);

}
}
运行结果:

Ⅱ java报表怎么做

用我现在用的finereport来和题主说下饼图吧,它也是web报表工具。

打开报表,设置百分比数据模板

符合饼图和复合条饼图只支持百分比的系列分隔方式,因此我们计算每个地区的应付金额所占比例是多少,隐藏B列,在C1中输入占比,C2中输入公式:=B2/SUM(B2[!0]),B2[!0]是B2扩展出来的所有单元格,根据情况设置单元格样式等操作。

下面以制作符合饼图为例,选中图表,勾线图表属性表-样式>系列中的第二绘图区,将第二绘图区小于百分比的数据改为10,默认为5,表示第二绘图区包含所有小于该百分比的值为:如下图:

根据情况可设置系列标签样式,勾选图表属性表-样式>标签中的标签,选中值,设置格式,百分比保留两位小数。

修改图表数据

修改图表属性表-数据>图例项值为C2单元格,复合饼图则可设置完成。

预览与保存

保存模板,点击分页预览,即可看到效果。

Ⅲ java操作word中的excel(对应的是图表,如柱状图)

我.net中也遇到了相同的问题:你可以先看一下下面代码,应该大部分你能用到,只是chart属性可能有点问题,之前尝试成功过,但是由于我不小心删除了一些系统文件里的内容,就有些运行不起来了
我是先循环的word中的shape
foreach (Microsoft.Office.Interop.Word.Shape shape in docFile.Shapes)
{
if(shape.Name=="Chart_图表")
{
shape.Chart.ChartData.Activate();
Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)shape.Chart.ChartData.Workbook;
Microsoft.Office.Interop.Excel.Worksheet wSh = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
//然后添加新数据
for (int r = 0; r < tempdt.Rows.Count; r++)
{
for (int k = 0; k < tempdt.Columns.Count; k++)
{
Microsoft.Office.Interop.Excel.Range Rng1 = wSh.Cells[r + 2, k + 1] as Microsoft.Office.Interop.Excel.Range;
Rng1.Value = tempdt.Rows[r][k];
}
}
wb.Application.ScreenUpdating = true;
wb.Close(Type.Missing, Type.Missing, Type.Missing);
chart.Refresh();
shape.Chart.Refresh();
}
}

Ⅳ 如何在JSP网页中生成动态图表

  1. JSP页面中嵌入动态图表的两种方法 :在JSP页面中插入Applet小程序 ;通过JavaBean动态生成图像。

  2. JSP是一种广泛应用的网页设计技术 ,它是一种HTML和Java脚本宽喊混合的编程技术 ,它结合了HTML的静态特性和Java语言的动态能力 ,因此用它进行动态网页设计非常方便。在进行图像处理时 ,一般处理静态图片非常容易 ,但是 ,在实际应用中常常需要动态地在网页中生成二维的图形.

  3. 基于JFreeChart开发的一个时序图的绘制。代码如下:

  4. 实例中createDataset()方法用于创建数据集合对象。时序图的知谈数据集合与其他数据集合不同,它需要添加一个时间段内的所有数据,通常采用TimeSeries类进行添加。该实例中通过Math类的random()方搭巧碰法进行随机生成。

  5. import java.awt.*;
    import java.awt.event.ActionEvent;
    import
    java.awt.event.ActionListener;
    import java.io.BufferedInputStream;
    import
    java.io.DataInputStream;
    import java.io.FileOutputStream;
    import
    java.io.IOException;
    import java.net.URL;
    import
    java.net.URLConnection;
    import java.text.DateFormat;
    import
    java.text.ParseException;
    import java.text.SimpleDateFormat;
    import
    java.util.Calendar;
    import java.util.Date;
    import java.util.Random;

    import javax.swing.JApplet;
    import javax.swing.Timer;

    import org.jfree.chart.*;
    import
    org.jfree.chart.annotations.CategoryTextAnnotation;
    import
    org.jfree.chart.axis.CategoryAnchor;
    import
    org.jfree.chart.axis.CategoryAxis;
    import
    org.jfree.chart.axis.CategoryLabelPositions;
    import
    org.jfree.chart.axis.DateAxis;
    import
    org.jfree.chart.axis.DateTickUnit;
    import
    org.jfree.chart.axis.DateTickUnitType;
    import
    org.jfree.chart.axis.ValueAxis;
    import
    org.jfree.chart.labels.;
    import
    org.jfree.chart.plot.CategoryPlot;
    import
    org.jfree.chart.plot.PlotOrientation;
    import
    org.jfree.chart.plot.XYPlot;
    import
    org.jfree.chart.renderer.category.BarRenderer;
    import
    org.jfree.chart.title.TextTitle;
    import
    org.jfree.data.category.CategoryDataset;
    import
    org.jfree.data.category.IntervalCategoryDataset;

    import org.jfree.chart.axis.NumberAxis;
    import
    org.jfree.data.category.DefaultCategoryDataset;
    import
    org.jfree.data.gantt.Task;
    import org.jfree.data.gantt.TaskSeries;
    import
    org.jfree.data.gantt.TaskSeriesCollection;
    import
    org.jfree.data.time.Day;
    import org.jfree.data.time.Second;
    import
    org.jfree.data.time.TimeSeries;
    import
    org.jfree.data.time.TimeSeriesCollection;
    import
    org.jfree.data.xy.XYDataset;

    public class shixutu extends JApplet {


  6. //PLOT_FONT是一静态的字体常量对象,使用此对象可以避免反复用到的字体对象被多次创建

    private static final Font PLOT_FONT = new Font("黑体", Font.ITALIC ,
    18);
    JFreeChart chart;

  7. //创建数据动态更新的监听
    class DataGenerator extends Timer
    implements ActionListener {

    private static final long serialVersionUID =
    3977867288743720504L;
    String
    equID;
    //设备ID号
    int
    totalTask;
    //任务数
    String[][]
    strTask;
    //任务情况

  8. public void
    actionPerformed(ActionEvent actionevent) {
    addTotalObservation();
    } DataGenerator()
    {



    super(1000,
    null);

    addActionListener(this);

    System.out.println("super");

    }
    }


    //将更新的数据添加到chart中
    private void addTotalObservation()
    {

    System.out.println("addTotalObservation");

    //设置新的数据集

    chart.getXYPlot().setDataset(createDataset());

    //通知Jfreechart
    数据发生了改变,重新绘制柱状图
    if
    (chart != null)
    {

    chart.fireChartChanged();

    }
    }
    private static void
    processChart(JFreeChart chart)
    {

    //设置标题字体

    chart.getTitle().setFont(new Font("隶书", Font.BOLD,
    26));

    //设置背景色

    chart.setBackgroundPaint(new
    Color(252,175,134));

    XYPlot plot = chart.getXYPlot();
    //获取图表的绘制属性

    plot.setDomainGridlinesVisible(false);
    //设置网格不显示

    //获取时间轴对象

    DateAxis dateAxis = (DateAxis)
    plot.getDomainAxis();

    dateAxis.setLabelFont(PLOT_FONT);
    //设置时间轴字体

    //设置时间轴标尺值字体

    dateAxis.setTickLabelFont(new
    Font("宋体",Font.PLAIN,12));

    dateAxis.setLowerMargin(0.0);
    //设置时间轴上显示的最小值

    //获取数据轴对象

    ValueAxis valueAxis =
    plot.getRangeAxis();

    valueAxis.setLabelFont(PLOT_FONT);
    //设置数据字体

    DateFormat format = new SimpleDateFormat("mm分ss秒");
    //创建日期格式对象

    //创建DateTickUnit对象

    DateTickUnit dtu = new
    DateTickUnit(DateTickUnitType.SECOND,30,format);

    dateAxis.setTickUnit(dtu);
    //设置日期轴的日期标签 } //将结果输出在文件中

  9. private static
    void writeChartAsImage(JFreeChart chart)
    {

    FileOutputStream fos_jpg =
    null;

    try
    {

    fos_jpg = new
    FileOutputStream("D:\test\shixutu.jpg");

    ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300,
    null);

    } catch (Exception e)
    {

    e.printStackTrace();

    } finally
    {

    try
    {

    fos_jpg.close();

    } catch (Exception e)
    {

    }

    }

    }

    //创建数据集合对象

    public static XYDataset createDataset()
    {

    //实例化TimeSeries对象

    TimeSeries timeseries = new
    TimeSeries("Data");

    Second second = new Second();
    //实例化Day


    double d =
    50D;

    //添加一年365天的数据

    for (int i = 0; i < 500; i++)
    {

    d = d + (Math.random() - 0.5) * 10;
    //创建随机数据

    timeseries.second(day, d);
    //向数据集合中添加数据

    second = (Second)
    second.next();

    }
    TimeSeriesCollection timeSeriesCollection =
    new
    TimeSeriesCollection(timeseries);

    //返回数据集合对象

    return timeSeriesCollection; }//Applet程序初始化

  10. public void init()
    {
    // 1.
    得到数据
    XYDataset dataset =
    createDataset();

    // 2.
    构造chart

    chart =
    ChartFactory.createTimeSeriesChart(

    "时序图示范", //
    图表标题

    "时间", //
    目录轴的显示标签--横轴

    "数值", //
    数值轴的显示标签--纵轴

    dataset, //
    数据集

    false,

    false, //
    是否生成工具

    false //
    是否生成URL链接

    );

    // 3.
    处理chart中文显示问题

    processChart(chart);


    // 4.
    chart输出图片

    //writeChartAsImage(chart);

    // 5. chart
    以swing形式输出

    //6.使用applet输出

    ChartPanel chartPanel = new
    ChartPanel(chart);

    chartPanel.setPreferredSize(new
    java.awt.Dimension(800,500));

    getContentPane().add(chartPanel); (new
    DataGenerator()).start();

    }

    public void
    paint(Graphics g)
    {
    if
    (chart != null)
    {

    chart.draw((Graphics2D) g,
    getBounds());

    }
    }

    public void destroy() {
    }
    }

阅读全文

与java图表页面源码相关的资料

热点内容
对称加密系统和公钥加密系统 浏览:426
历史地理pdf 浏览:600
物联网云服务器框架 浏览:646
sybaseisql命令 浏览:181
android权威编程指南pdf 浏览:661
哪些软件属于加密软件 浏览:644
文件夹75丝什么意思 浏览:468
最便宜sop8单片机 浏览:964
图解周易预测学pdf 浏览:418
c盘莫名奇妙多了几个文件夹 浏览:169
贵州花溪门票优惠app哪个好 浏览:801
如何说话不会让人有被命令的感觉 浏览:438
哪里可下载湘工惠app 浏览:263
福特python 浏览:310
pdf转换成word表格 浏览:351
无线远端服务器无响应是什么意思 浏览:670
两位整数倒序输出python 浏览:781
为什么我的世界天空服务器进不去 浏览:262
钉钉直播后的视频如何线上加密 浏览:503
听主的命令 浏览:208