当前位置:首页 » 网页前端 » web折线图
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web折线图

发布时间: 2022-02-11 12:55:30

1. jfreechart做折线图有没有简单的方法控制

package daimon.jfreechart;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

/** 折线图
* @author 顾源 */
public class LineDraw {
/** web项目折线图(支持多根折线)
* @param data
* 基础数据。List<String[]> list节点中保存的是长度为3的数据【数字,单个线的名称(可以为多个,如果为多个就是多个线的统计,为一个时设为""即可),X轴单个节点名称】<br/>
* */
public Map<String, String> makeWebLine(List<String[]> data, String lineName, String xName, String yName ,int width ,int height ,HttpServletRequest request) {
CategoryDataset linedataset = this.getDataSet(data);

JFreeChart chart = ChartFactory.createLineChart(lineName, // chart title
xName, // domain axis label
yName, // range axis label
linedataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
CategoryPlot line = chart.getCategoryPlot();
// 坐标轴的设置
NumberAxis rangeAxis = (NumberAxis) line.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
line.setRangeAxis(rangeAxis);

String filename = "";
try {
filename = ServletUtilities.saveChartAsPNG(chart, width, height, null, request.getSession());
} catch (IOException e) {
e.printStackTrace();
}
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

Map<String, String> m1 = new HashMap<String, String>();
m1.put("fileName", filename);
m1.put("fileUrl", graphURL);
return m1;
}
/** 普通折线图 */
public boolean makeLine(List<String[]> data, String lineName, String xName, String yName ,int width ,int height) {
CategoryDataset linedataset = this.getDataSet(data);

JFreeChart chart = ChartFactory.createLineChart(lineName, // chart title
xName, // domain axis label
yName, // range axis label
linedataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
CategoryPlot line = chart.getCategoryPlot();
// customise the range axis...
NumberAxis rangeAxis = (NumberAxis) line.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
line.setRangeAxis(rangeAxis);

FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\fruit.jpg");
//第二个参数是设置图片清晰度,从0.1f到1.0f
ChartUtilities.writeChartAsJPEG(fos_jpg, 1.0f, chart, width, height, null);
}catch(Exception e){
e.printStackTrace();
}finally {
try {
fos_jpg.close();
} catch (Exception e) {
}
}
System.out.println("结束");
return true;
}
//构建数据
private CategoryDataset getDataSet(List<String[]> data){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(String[] ss : data){
dataset.addValue(Double.valueOf(ss[0]), ss[1], ss[2]);
}
return dataset;
}
//主方法测试
public static void main(String[] args){
LineDraw ld = new LineDraw();
List<String[]> list = new ArrayList<String[]>();
String[] s1 = {"10" ,"北京" ,"2010"};
String[] s2 = {"15" ,"北京" ,"2011"};
String[] s3 = {"20" ,"北京" ,"2012"};
String[] s4 = {"13" ,"北京" ,"2013"};
String[] s5 = {"17" ,"北京" ,"2014"};
String[] s6 = {"50" ,"北京" ,"2015"};

String[] z1 = {"25" ,"上海" ,"2010"};
String[] z2 = {"30" ,"上海" ,"2011"};
String[] z3 = {"5" ,"上海" ,"2012"};
//String[] z4 = {"60" ,"上海" ,"2013"};
String[] z5 = {"30" ,"上海" ,"2014"};
String[] z6 = {"0" ,"上海" ,"2015"};

list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
list.add(s6);

list.add(z1);
list.add(z2);
list.add(z3);
//list.add(z4);
list.add(z5);
list.add(z6);
ld.makeLine(list, "测试图", "年份", "吨", 600, 500);
}
}

自己把jfreechart包导一下,就可以跑起来了
你自己试试

2. Excel 求助,WEB查询不显示图表

在excel进行数据处理时选择插入“折线图--二维折线图”就可以自动出来了。

3. html怎么用js特效做折线图

使用原生js自己写或js库(框架)都是可以的,由于目前HTML5并不是所有的浏览器都完美支持,使用兼容性比较好的js库是个不错的选择。

例如Highcharts图标库就可以实现各类曲线图、折线图、区域图、3D图、柱状图等等。具体使用参考:http://www.hcharts.cn/demo/index.php。

Highcharts中做折线图的demo代码可以作为参考:

<htmllang="en">

<head>

<scripttype="text/javascript"src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js">

</script>

<scripttype="text/javascript"src="http://cdn.hcharts.cn/highcharts/highcharts.js">

</script>

<scripttype="text/javascript"src="http://cdn.hcharts.cn/highcharts/exporting.js">

</script>

<script>

$(function(){

$('#container').highcharts({

chart:{

type:'line'
},

title:{
text:'MonthlyAverageTemperature'
},

ubtitle:{

text:'Source:WorldClimate.com'
},

xAxis:{

categories:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
},

yAxis:{

title:{

text:'Temperature(°C)'
}

},

tooltip:{

enabled:false,

formatter:function(){

return'<b>'+this.series.name+'</b><br/>'+this.x+':'+this.y+'°C';
}
},

plotOptions:{

line:{

dataLabels:{

enabled:true},

enableMouseTracking:false
}
},

series:[{

name:'Tokyo',

data:[7.0,6.9,9.5,14.5,18.4,21.5,25.2,26.5,23.3,18.3,13.9,9.6]
},{

name:'London',

data:[3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]
}]
});
});

</script>

</head>

<body>

<divid="container"style="min-width:700px;height:400px"></div>

</body>

</html>

4. C# 我在web里一个界面画了个折线图,另一个界面调用它,现在情况是:

大哥检查一下你的问题,句子都不通顺,最后竟然是逗号结尾,也好意思问。

5. 用jsp怎样生成柱状图,饼状图,折线图

JFreeChart 可以绘制饼状图,折线图,柱状图等. awt/swing里可以使用,JSP里也可以使用

JFreeChart是Java平台下开源的图表类库,是一个完全基于Java的图表开发技术。
支持的图表类型也比较丰富,比如饼图、柱状图、散点图、仪表盘、甘特图等多种图表,
还可以生成Web图形报表。JFreeChart可导出PNG和JPEG格式的文件

例如下面的柱状图

6. web表格怎样做得美

下面我们以一个简单的示例来体会体会一下表单。
最终效果如下:
如何用web表格控件FineReport做web表格
2
新建表单
点击文件>新建表单,如下图
如何用web表格控件FineReport做web表格
拖入组件
如上图所示的效果图,我们可以看到该表单需要有1个下拉框控件以及对应的1个标签控件和一个查询按钮,还需要一个以表格形式显示数据的报表块和显示图表的图表块,此时,我们确定了需要在表单中添加一个报表块,一个图表块,3个控件。
注:在组件介绍中,我们知道控件即可依附于参数面板组件存在,也可以单独以组件的形式存在,在这里可随意使用哪种形式,效果都一样,那么使用依附于参数面板组件存在的形式。
参数组件
从工具栏中将参数组件拖拽至表单主体中,并将相应的三个控件:下拉框、文本控件和查询按钮拖拽至参数组件中,并设置标签控件的控件值为:客户,如下图:
如何用web表格控件FineReport做web表格
报表块组件
从工具栏中将报表组件也拖拽至表单主体中,如下图:
如何用web表格控件FineReport做web表格
注:如果组件数量过多,在web端展示的时候自适应在一页内显示会比较拥挤,那么此时可以在右侧下方选中整体框架body,在右侧上方的属性表中将组件缩放修改为自适应原样缩放,如下图:
如何用web表格控件FineReport做web表格
充满展现区域:是指在web端展示的时候,所有组件自适应充满整个浏览器页面显示,不出现滚动条;
自适应原样缩放:是指在web端展示的时候根据制作表单时候组件大小比例显示,并不缩放充满整个web页面,如果超过页面大小,会出现滚动条。
其详细显示样式请查看表单样式
图表组件
再从工具栏中将图表组件拖曳至报表块组件的下方,如下图:
如何用web表格控件FineReport做web表格
控件绑定数据
定义数据集
效果图中,新建数据集ds1:SELECT 产品名称,库存量,产品.成本价 ,产品.单价 FROM 订单,订单明细,产品 where 客户ID='${company}'and 订单.订单ID=订单明细.订单ID and 订单明细.产品ID=产品.产品ID,参数company的默认值为VINET,。
注:参数名字必须与客户ID下拉框控件名称保持一致。
客户下拉框控件
选中下拉框控件拖拽到适当位置,下拉框控件名设为“company”,数据字典来自FRDemo数据库的客户表(数据类型选择数据库表,数据库选择FRDemo),实际值和显示值分别为客户ID和客户名称,控件值为VINET:
如何用web表格控件FineReport做web表格
报表块
参数面板与控件都已经设置好之后,点开报表块里面的触笔按钮,进行报表块编辑界面,如下图:
如何用web表格控件FineReport做web表格
新建数据集
效果图中,报表块里面要显示订单明细数据,根据客户ID进行过滤,新建数据集ds2:select * from 订单 where 客户ID='${company}',company默认值为VINET.
表样设计
如下图所示,设计表样:
如何用web表格控件FineReport做web表格
点击左下角的表单按钮回到表单的设计界面,选中报表块,可在右侧的属性表中设置其报表块工具栏是否可见,如下图:
如何用web表格控件FineReport做web表格
图表块
鼠标选中图表块所在区域,为该图表绑定数据,图表数据源来源于数据集数据源,其分类系列设置如下:
如何用web表格控件FineReport做web表格
条件属性
由于该图表块类型为组合图,即需要通过图表条件属性来修改不同系列的图表类型,如下图,新增一个条件属性,设置当系列序号为3的时候,其坐标轴为次坐标轴,图表类型为折线图:
如何用web表格控件FineReport做web表格
13
注:设置条件选择系列序号的时候需要与数据绑定时的数据列顺序相匹配,在上图设置图表数据时,库存量、成本价和单价的系列序号依次为1、2、3,条件属性主要是设置库存量系列用柱形图展示,成本价和单价用折线图展示并使用次坐标轴。在添加一个组合图时,会默认添加2个条件属性,详细请查看组合图
到此为止,表单就已经制作好了。

7. 如何使用websocket在网页上动态示实时数据的折线图

你既然已经知道了用websocket和flask,可以用flask-SocketIO这个插件,结合一个前端图表组件,比如:echarts、HighCharts或者amCharts,websocket接收到新数据实时更新表格即可。

8. .net 如何制作折线图,Web形式 ,要求折线图上的点还能进行click事件触发

OWC11可以实现

9. web页面 chart.js 怎样在折线图的点上显示对应数值

请问问题解决了吗?我用Chart.bundle.min.js只有当鼠标移到一个点上才显示该点对应的数据。但我想要的是不用把鼠标移上去就能看到对应数据,如果能只显示最大值和最小值更好

10. 如何用java 画折线图

参考下面代码:
package com.lei.jfreechart;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class LineCharts extends ApplicationFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public LineCharts(String s) {
super(s);
setContentPane(createDemoLine());
}
public static void main(String[] args) {
LineCharts fjc = new LineCharts("折线图");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
// 生成显示图表的面板
public static JPanel createDemoLine() {
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
// 生成图表主对象JFreeChart
public static JFreeChart createChart(DefaultCategoryDataset linedataset) {
// 定义图表对象
JFreeChart chart = ChartFactory.createLineChart("一季度销售曲线", //折线图名称
"时间", // 横坐标名称
"销售额(百万)", // 纵坐标名称
linedataset, // 数据
PlotOrientation.VERTICAL, // 水平显示图像
true, // include legend
true, // tooltips
false // urls
);
CategoryPlot plot = chart.getCategoryPlot();
plot.setRangeGridlinesVisible(true); //是否显示格子线
plot.setBackgroundAlpha(0.3f); //设置背景透明度
NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
return chart;
}
// 生成数据
public static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
// 各曲线名称
String series1 = "冰箱";
String series2 = "彩电";
String series3 = "洗衣机";
// 横轴名称(列名称)
String type1 = "1月";
String type2 = "2月";
String type3 = "3月";
linedataset.addValue(0.0, series1, type1);
linedataset.addValue(4.2, series1, type2);
linedataset.addValue(3.9, series1, type3);
linedataset.addValue(1.0, series2, type1);
linedataset.addValue(5.2, series2, type2);
linedataset.addValue(7.9, series2, type3);
linedataset.addValue(2.0, series3, type1);
linedataset.addValue(9.2, series3, type2);
linedataset.addValue(8.9, series3, type3);
return linedataset;
}
}