Java画趋势图
趋势图是一种用于展示数据随时间变化的可视化图表。在Java中,我们可以使用各种库和框架来绘制趋势图,比如JFreeChart和Chart.js等。本文将介绍如何使用JFreeChart库来画趋势图,并提供一些代码示例。
JFreeChart简介
JFreeChart是一个开源的Java图表库,可以用于创建各种类型的图表,包括折线图、柱状图、饼状图等。它提供了丰富的功能和灵活的配置选项,能够满足各种绘图需求。
安装JFreeChart
首先,我们需要在项目中引入JFreeChart库。可以通过Maven或手动下载jar包的方式来添加依赖。
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
画折线图
折线图是一种用于显示数据随时间变化的图表。下面是一个使用JFreeChart库绘制折线图的示例代码:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
public class LineChartExample {
public static void main(String[] args) throws InterruptedException {
TimeSeries series = new TimeSeries("Random Data");
Millisecond now = new Millisecond();
double value = 100.0;
for (int i = 0; i < 1000; i++) {
now = (Millisecond) now.next();
value = value + Math.random() - 0.5;
series.add(now, value);
Thread.sleep(100);
}
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(series);
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Random Data",
"Time",
"Value",
dataset,
true,
true,
false
);
ChartFrame frame = new ChartFrame("Line Chart Example", chart);
frame.pack();
frame.setVisible(true);
}
}
上述代码通过创建一个TimeSeries对象来存储数据,并使用ChartFactory.createTimeSeriesChart方法创建一个折线图。然后将图表显示在ChartFrame中。
画甘特图
甘特图是一种用于展示任务进度的图表,可以清晰地显示每个任务的开始时间和结束时间。下面是一个使用mermaid语法绘制甘特图的示例代码:
gantt
dateFormat YYYY-MM-DD
title 甘特图示例
section 任务A
任务A1 :done, a1, 2022-01-01, 2022-01-05
任务A2 :done, a2, 2022-01-06, 2022-01-10
任务A3 :done, a3, 2022-01-11, 2022-01-15
section 任务B
任务B1 :done, b1, 2022-01-01, 2022-01-03
任务B2 :done, b2, 2022-01-04, 2022-01-07
任务B3 :done, b3, 2022-01-08, 2022-01-11
section 任务C
任务C1 :done, c1, 2022-01-01, 2022-01-04
任务C2 :done, c2, 2022-01-05, 2022-01-08
任务C3 :done, c3, 2022-01-09, 2022-01-12
上述代码使用gantt关键字定义了一个甘特图,通过dateFormat指定日期格式,并使用section关键字定义了三个任务。
画饼状图
饼状图是一种用于显示数据占比的图表,常用于展示各个部分在整体中的比例关系。下面是一个使用mermaid语法绘制饼状图的示例代码:
pie
title 饼状图示例
"任务A": 40
"任务B": 30
"任务C": 20
"任务D": 10
上述代码使用pie关键字定义