把mysql数据展示为图表_怎么从数据库中调出数据并生成动态图表?
展开全部
JSP页面中嵌入动态图表的两种方32313133353236313431303231363533e59b9ee7ad9431333365636562法 :在JSP页面中插入Applet小程序 ;通过JavaBean动态生成图像。
JSP是一种广泛应用的网页设计技术 ,它是一种HTML和Java脚本混合的编程技术 ,它结合了HTML的静态特性和Java语言的动态能力 ,因此用它进行动态网页设计非常方便。在进行图像处理时 ,一般处理静态图片非常容易 ,但是 ,在实际应用中常常需要动态地在网页中生成二维的图形.
基于JFreeChart开发的一个时序图的绘制。代码如下:
实例中createDataset()方法用于创建数据集合对象。时序图的数据集合与其他数据集合不同,它需要添加一个时间段内的所有数据,通常采用TimeSeries类进行添加。该实例中通过Math类的random()方法进行随机生成。
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.StandardCategoryItemLabelGenerator;
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 {
//PLOT_FONT是一静态的字体常量对象,使用此对象可以避免反复用到的字体对象被多次创建
private static final Font PLOT_FONT = new Font("黑体", Font.ITALIC ,
18);
JFreeChart chart;
//创建数据动态更新的监听
class DataGenerator extends Timer
implements ActionListener {
private static final long serialVersionUID =
3977867288743720504L;
String
equID;
//设备ID号
int
totalTask;
//任务数
String[][]
strTask;
//任务情况
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);
//设置日期轴的日期标签 } //将结果输出在文件中
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程序初始化
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() {
}
}
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
把mysql数据展示为图表_怎么从数据库中调出数据并生成动态图表?相关推荐
- mysql杠杆加号什么意思_对tb_book表中的数据,按ID序号进行升序排列,查询语句是什么?_学小易找答案...
[单选题]修改数据库表结构用以下哪一项 ( ) [单选题]对于一个微小物理量,通常采用将其进行放大的方法实现测量,以下哪个不是物理实验方法? [单选题]扭摆实验中,为了测出金属匀质细杆绕质心对称轴的转 ...
- 数据透视表 筛选_筛选器选择中的数据透视图标题
数据透视表 筛选 Instead of adding a static title to your Pivot Chart, use a worksheet formula to create a d ...
- python将数据写入excel_【Python】将数据库中的数据查询出来自动写入excel文档
近期每天都要监控一个数据.第一个版本是这样的: 每天新增一个文档来汇总这个数据.这样搞了几天之后,过了一个周末,过来突然发现数据变多了很多,这个时候要调整策略,直接一个文档汇总出要的数据就可以了. 这 ...
- 大数据展示html模板_澳门媒体参观国家大数据(贵州)综合试验区展示中心
多彩贵州网讯(记者 彭典)11月22日,来自澳门日报.澳广视等14家澳门主流媒体"脱贫攻坚贵州行"主题采访团来到最后一站--国家大数据(贵州)综合试验区展示中心(以下简称" ...
- mysql 字段必填 属性_如何判断数据库中的字段是否具有必填属性(50分)
你试试用SQLDMO吧 提供如下供参考 Option Explicit Dim dd As SQLDMO.Database Dim ss As New SQLDMO.SQLServer Dim tt ...
- python实现决策树数据直接赋值导入_决策树在python中的数据实现
我为python决策树算法实现完成了以下代码:from csv import reader def load_csv(filename): file = open(filename, "rb ...
- python 图表_用 Python 让你的数据图表动起来
在读技术博客的过程中,我们会发现那些能够把知识.成果讲透的博主很多都会做动态图表.他们的图是怎么做的?难度大吗? 这篇文章就介绍了 Python 中一种简单的动态图表制作方法. 数据暴增的年代,数据科 ...
- flask查询mysql数据展示_flask再学习-思考之怎么从数据库中查询数据在页面展示!...
看别人视频觉得很简单,要自己做蒙蔽了!这样子.NO! 1. 流程: 首先要有和数据库连接的驱动!一般有PYMySQL mysqlclient 等 使用扩展Flask-SQLAlchemy 获得orm对 ...
- jsp在mysql中删除数据_如何在jsp页面中删除数据库中的数据
如何在jsp页面中删除数据库中的数据 各位大虾! 我想在jsp页面上写一个按钮功能,从而动态的删除数据库中的一行数据. 不知道怎么实现 这是我写的一段代码 数据库是MySql UserBean p3= ...
- 如何把MySql数据库中的数据导入到MyCat集群中_---Linux运维工作笔记050
我这里,单个MySql数据表的大小已经超过20GB了,单表8000多万条数据,马上 上亿了,这个时候我,搭建了一个MyCat集群解决的,一个写库,11个读库这样来做的. 提高查询效率.但是搭建完以后, ...
最新文章
- 2017年深度学习必读31篇论文(附下载地址)
- Git与Github操作指南(入门)
- .NET WebBrowser不与IE或其他进程共享cookie(WebBrowser独立cookie方法)
- 老笔记整理四:字符串的完美度
- ZeroMQ全面介绍
- XSLT实现XML无极限树(精简版)[二] 解决没有递归出节点属性值总和的问题(JS实现)...
- Java网络编程之Socket和ServerSocket详解
- [生活]我短暂的股票生涯
- 图邻接表拓扑排序算法c语言完整,在用邻接表表示图时,拓扑排序算法时间复杂度为()...
- 单元格自适应宽度_Excel – 合并单元格时,如何同时保留每个单元格的内容?...
- Python常用小技巧总结
- 中国GBA模拟器先驱李可文不幸去世
- Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?
- jersey文件服务器,通过jersey实现客户端图片上传
- 嵌入式编程规范与原则
- 读《纳瓦尔宝典》感想
- 厉害了!腾讯又一开源力作发布!
- 寂寂的流年,时光日渐青翠
- 学c语言要掌握的英语单词,学习C语言需要理解的英语单词
- 正则验证连续重复字符、连续递增递减数字