伊莉討論區
標題:
java jsp 用 FusionCharts畫圖表
[打印本頁]
作者:
黑~~
時間:
2018-4-29 06:22 PM
標題:
java jsp 用 FusionCharts畫圖表
本帖最後由 黑~~ 於 2018-4-29 10:09 PM 編輯
大家好:
我用fusioncharts畫圖,我成功畫了一條折線圖
但我想在同一個chart畫第2條折線圖時都失敗
他會接在第一個折線圖的後面....但其實我想要的是這樣(我有畫藍色標記
[attach]123202285[/attach]
不知如何才能清楚畫出2之折線圖呢?
以下是java程式碼:
複製代碼
以下是JSP:
<%
String pro[]={"一月","二月","三月","四月"};
double proform[]=new double [4];
double proformt[]=new double [4];
for(int i=0;i<proform.length;i++){proform[i]=i*10;}
for(int i=0;i<proformt.length;i++){proformt[i]=i*10+10;}
%>
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="scripts/fusioncharts.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div id="chart"></div>
<%@page import="fusioncharts.FusionCharts" %>
<%
String chartXML = "<chart __attributes__>__set__</chart>";
String setXMLTemplate = "<set label=\"__label__\" value=\"__value__\" />";
String setXMLTemplate1 = "<set label=\"__label__\" value=\"__value__\" />";
ArrayList<String> setList = new ArrayList<String>();
ArrayList<String> setList1 = new ArrayList<String>();
for(int i=0;i<pro.length;i++)
{
String tempSetTemplate = setXMLTemplate;
tempSetTemplate = tempSetTemplate.replaceAll("__label__", pro[i]);
tempSetTemplate = tempSetTemplate.replaceAll("__value__", Double.toString(proform[i]));
setList.add(tempSetTemplate);
}
for(int i=0;i<pro.length;i++)
{
String tempSetTemplate = setXMLTemplate1;
tempSetTemplate = tempSetTemplate.replaceAll("__label__", pro[i]);
tempSetTemplate = tempSetTemplate.replaceAll("__value__", Double.toString(proformt[i]));
setList1.add(tempSetTemplate);
}
StringBuilder chartAttributeString = new StringBuilder();
StringBuilder setAttributeString = new StringBuilder();
for(String s: setList)
setAttributeString.append(s);
for(String s: setList1)
setAttributeString.append(s);
chartXML = chartXML.replaceAll("__attributes__", chartAttributeString.toString());
// Replace the data sets
chartXML = chartXML.replaceAll("__set__", setAttributeString.toString());
FusionCharts columnChart= new FusionCharts(
"line",// chartType pie2d bar2d column2d gantt line pie2d
"chart1",// chartId
"800","500",// chartWidth, chartHeight
"chart",// chartContainer
"xml",// dataFormat
chartXML//dataSource
);
%>
<%=columnChart.render()%>
</body>
</html>
複製代碼
研究很久真的不知道哪裡錯了.....請大大協助,謝謝
作者:
黑~~
時間:
2018-4-29 09:45 PM
本帖最後由 黑~~ 於 2018-4-29 10:09 PM 編輯
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.text.Format"%>
<%@page import="java.util.List"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
String pro[]={"一月","二月","三月","四月"};
double proform[]=new double [4];
double proformt[]=new double [4];
for(int i=0;i<proform.length;i++){proform[i]=i*10;}
for(int i=0;i<proformt.length;i++){proformt[i]=i*10+10;}
%>
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="scripts/fusioncharts.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
</head>
<body>
<div id="chart"></div>
<%@page import="fusioncharts.FusionCharts" %>
<%
String chartXML = "<chart __attributes__>__set__</chart>";
String setXMLTemplate = "<set label=\"__label__\" value=\"__value__\" />";
ArrayList<String> setList = new ArrayList<String>();
for(int i=0;i<pro.length;i++)
{
String tempSetTemplate = setXMLTemplate;
tempSetTemplate = tempSetTemplate.replaceAll("__label__", pro[i]);
tempSetTemplate = tempSetTemplate.replaceAll("__value__", Double.toString(proform[i]));
setList.add(tempSetTemplate);
}
StringBuilder chartAttributeString = new StringBuilder();
StringBuilder setAttributeString = new StringBuilder();
for(String s: setList)
setAttributeString.append(s);
chartXML = chartXML.replaceAll("__attributes__", chartAttributeString.toString());
// Replace the data sets
chartXML = chartXML.replaceAll("__set__", setAttributeString.toString());
FusionCharts columnChart= new FusionCharts(
"msline",// chartType
"chart1",// chartId
"800","500",// chartWidth, chartHeight
"chart",// chartContainer
"xml",// dataFormat
"<chart caption=\"Total \" xaxisname=\"Day\" yaxisname=\"Visitors\" > "
+ "<categories><category label=\"Mon\" /><category label=\"Tue\" /></categories>"
+ "<dataset seriesname=\"Bakersfield\"><set value=\"15123\" /><set value=\"14233\" /> </dataset>"
+ " <dataset seriesname=\"Los Angeles\"><set value=\"13400\" /><set value=\"12800\" /></dataset> </chart> "
);
%>
<%=columnChart.render()%>
</body>
</html>
複製代碼
固定值得畫已經可以順利畫2條線,現在再挑戰抓資料庫變數來畫(目前抓資料庫只要畫2條線變數就會掛掉,一條線OK
作者:
黑~~
時間:
2018-4-29 10:12 PM
試著改一下,但是他有圖框去畫不出線....
<%
String pro[]={"一月","二月","三月","四月"};
double proform[]=new double [4];
double proformt[]=new double [4];
for(int i=0;i<proform.length;i++){proform[i]=i*10;}
for(int i=0;i<proformt.length;i++){proformt[i]=i*10+10;}
%>
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="scripts/fusioncharts.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
</head>
<body>
<div id="chart"></div>
<%@page import="fusioncharts.FusionCharts" %>
<%
String chartXML = "<chart __attributes__>__set__</chart>";
// String setXMLTemplate = "<set label=\"__label__\" value=\"__value__\" />";
String setXMLTemplate = "<category label=\"__label__\" /><dataset seriesname=\"__seriesname__\"><set value=\"__value__\" /> </dataset>";
ArrayList<String> setList = new ArrayList<String>();
for(int i=0;i<pro.length;i++)
{
String tempSetTemplate = setXMLTemplate;
tempSetTemplate = tempSetTemplate.replaceAll("__label__", pro[i]);
tempSetTemplate = tempSetTemplate.replaceAll("__seriesname__", "2016");
tempSetTemplate = tempSetTemplate.replaceAll("__value__", Double.toString(proform[i]));
tempSetTemplate = tempSetTemplate.replaceAll("__value__", Double.toString(proformt[i]));
setList.add(tempSetTemplate);
}
StringBuilder chartAttributeString = new StringBuilder();
StringBuilder setAttributeString = new StringBuilder();
for(String s: setList)
setAttributeString.append(s);
chartXML = chartXML.replaceAll("__attributes__", chartAttributeString.toString());
// Replace the data sets
chartXML = chartXML.replaceAll("__set__", setAttributeString.toString());
FusionCharts columnChart= new FusionCharts(
"msline",// chartType pie2d bar2d column2d gantt line pie2d
"chart1",// chartId
"800","500",// chartWidth, chartHeight
"chart",// chartContainer
"xml",// dataFormat
chartXML
);
%>
<%=columnChart.render()%>
</body>
</html>
複製代碼
歡迎光臨 伊莉討論區 (http://www76484.eyny.com/)
Powered by Discuz!