當前位置:首頁 » 網頁前端 » 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;
}
}