java echarts 生成图片_java如何在后台生成echarts图表?实际代码展示
学习是一个永无止境的过程,关于java的学习更是如此。今天主要为大家介绍下,如何在java中后台生成echarts图表,并且为大家展示实际的操作流程。首先说下它的适用情况:⑴、支持echart4.0最新版本;⑵、支持上万条数据,网上只能查询几百条,然后拼接在cmd命令中,这种方法采用java生成的optonsjson数据写成文件,把文件地址拼装在cmd中js去读文件。然后是具体的操作流程。首先:j
学习是一个永无止境的过程,关于java的学习更是如此。今天主要为大家介绍下,如何在java中后台生成echarts图表,并且为大家展示实际的操作流程。
首先说下它的适用情况:⑴、支持echart4.0最新版本;⑵、支持上万条数据,网上只能查询几百条,然后拼接在cmd命令中,这种方法采用java生成的optons
json数据写成文件,把文件地址拼装在cmd中js去读文件。
然后是具体的操作流程。
首先:java后台拼接option,图片展示如下:

然后:使用java传cmd命令调用PhantomJS生成echarts图片(测试方法中option是写死)。代码展示如下:public class EchartGenerate
{
private static final String JSpath = "C:\\echarts-convert\\echarts-convert1.js";
private static final Logger logger = Logger.getLogger(ReportUtils.class);
public static void main(String[] args)
{
String imgName = "E:/temp/Echart/tes" + UUID.randomUUID()
.toString()
.substring(0, 4) + ".png ";
String optiona = "{\"title\":{\"text\":\"电流图\",\"subtext\":\"电流图\",\"x\":\"left\"},\"toolbox\":{\"feature\":{\"saveAsImage\":{\"show\":true,\"title\":\"保存为图片\",\"type\":\"png\",\"lang\":[\"点击保存\"]}},\"show\":true},\"tooltip\":{\"trigger\":\"axis\"},\"legend\":{\"data\":[\"邮件营销\",\"联盟广告\",\"视频广告\"]},\"xAxis\":[{\"type\":\"category\",\"boundaryGap\":false,\"data\":[\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\",\"周日\"]}],\"yAxis\":[{\"type\":\"value\"}],\"series\":[{\"name\":\"邮件营销\",\"type\":\"line\",\"stack\":\"总量\",\"data\":[120,132,101,134,90,230,210]},{\"name\":\"联盟广告\",\"type\":\"line\",\"stack\":\"总量\",\"data\":[220,182,191,234,290,330,310]},{\"name\":\"视频广告\",\"type\":\"line\",\"stack\":\"总量\",\"data\":[150,232,201,154,190,330,410]}]}";
//String options = "test";
Map resultMap = new HashMap ();
generateEChart(optiona, resultMap);
}
public static String generateEChart(String options, Map resultMap)
{
String dataPath = writeFile(options);
String fileName = "test-" + UUID.randomUUID()
.toString()
.substring(0, 8) + ".png";
String path = "D:/temp/Echart/" + fileName;
try
{
File file = new File(path); //文件路径(路径+文件名)
if (!file.exists())
{ //文件不存在则创建文件,先创建目录
File dir = new File(file.getParent());
dir.mkdirs();
file.createNewFile();
}
String cmd = "phantomjs " + JSpath + " -infile " + dataPath + " -outfile " + path;
Process process = Runtime.getRuntime()
.exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = input.readLine()) != null)
{
logger.info(line);
}
input.close();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
return path;
}
}
public static String writeFile(String options)
{
String dataPath = "D:\\chartData\\data" + UUID.randomUUID()
.toString()
.substring(0, 8) + ".json";
try
{
/* 写入Txt文件 */
File writename = new File(dataPath); // 相对路径,如果没有则要建立一个新的output.txt文件
if (!writename.exists())
{ //文件不存在则创建文件,先创建目录
File dir = new File(writename.getParent());
dir.mkdirs();
writename.createNewFile(); // 创建新文件
}
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
out.write(options); // \r\n即为换行
out.flush(); // 把缓存区内容压入文件
out.close(); // 最后记得关闭文件
}
catch (IOException e)
{
e.printStackTrace();
}
return dataPath;
}
}
最后:echarts-convert.js,图片展示如下:

以上就是有关java如何在后台生成echatrs图表的具体操作流程。想要了解更多java基础,敬请关注奇Q工具网。
推荐阅读:
更多推荐
所有评论(0)