defaultcategorydataset
时间: 2023-04-18 16:04:05 浏览: 204
DefaultCategoryDataset是JFreeChart图表库中的一个类,用于创建一个默认的分类数据集。它可以存储一组分类数据,每个分类数据包含一个或多个数值。这个类提供了一些方法来添加、删除、修改和查询数据集中的数据。它可以用于创建柱状图、折线图、面积图等各种类型的图表。
相关问题
defaultcategorydataset如何设置数据
可以使用 `addValue()` 方法向 `DefaultCategoryDataset` 中添加数据。该方法需要传入三个参数:值、行名称和列名称。以下是一个示例:
```
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Category 1");
dataset.addValue(2.0, "Series 1", "Category 2");
dataset.addValue(3.0, "Series 1", "Category 3");
dataset.addValue(4.0, "Series 2", "Category 1");
dataset.addValue(5.0, "Series 2", "Category 2");
dataset.addValue(6.0, "Series 2", "Category 3");
```
在上面的代码中,我们创建了一个 `DefaultCategoryDataset` 对象,并使用 `addValue()` 方法向其中添加了六个数据点。第一个参数是数据值,第二个参数是行名称,第三个参数是列名称。在这个例子中,我们添加了两个系列("Series 1" 和 "Series 2")和三个类别("Category 1"、"Category 2" 和 "Category 3")。
你可以根据自己的需求添加更多的数据点,只需要调用 `addValue()` 方法即可。
DefaultCategoryDataset构建两条首尾相连的折线图
要构建两条首尾相连的折线图,可以使用 JFreeChart 库中的 `DefaultCategoryDataset` 类和 `ChartFactory` 类。
以下是一个示例代码,它构建了两条首尾相连的折线图:
```java
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
public class LineChartExample {
public static void main(String[] args) {
// 创建数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Category 1");
dataset.addValue(2.0, "Series 1", "Category 2");
dataset.addValue(3.0, "Series 1", "Category 3");
dataset.addValue(4.0, "Series 1", "Category 4");
dataset.addValue(5.0, "Series 1", "Category 5");
dataset.addValue(6.0, "Series 1", "Category 6");
dataset.addValue(7.0, "Series 1", "Category 7");
dataset.addValue(4.0, "Series 2", "Category 1");
dataset.addValue(3.0, "Series 2", "Category 2");
dataset.addValue(2.0, "Series 2", "Category 3");
dataset.addValue(1.0, "Series 2", "Category 4");
dataset.addValue(0.5, "Series 2", "Category 5");
dataset.addValue(1.5, "Series 2", "Category 6");
dataset.addValue(2.5, "Series 2", "Category 7");
// 创建图表
JFreeChart chart = ChartFactory.createLineChart(
"Line Chart Example", // 图表标题
"Category", // X 轴标题
"Value", // Y 轴标题
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向
true, // 是否显示图例
true, // 是否生成工具提示
false // 是否生成 URL 链接
);
// 配置图表样式
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.white);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.gray);
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(Color.gray);
LineAndShapeRenderer renderer = new LineAndShapeRenderer(true, false);
renderer.setSeriesPaint(0, Color.blue);
renderer.setSeriesPaint(1, Color.green);
renderer.setBaseItemLabelsVisible(true);
plot.setRenderer(renderer);
// 配置 X 轴
CategoryAxis xAxis = plot.getDomainAxis();
xAxis.setLowerMargin(0.0);
xAxis.setUpperMargin(0.0);
// 配置 Y 轴
NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
yAxis.setAutoRangeIncludesZero(true);
// 创建图表面板并添加到窗口中
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 300));
JFrame frame = new JFrame("Line Chart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
```
代码中使用了 `DefaultCategoryDataset` 类来创建数据集,向数据集中添加了两个系列的数据,每个系列有七个数据点。然后使用 `ChartFactory` 类的 `createLineChart` 方法创建了一个折线图,最后将折线图添加到一个窗口中显示出来。
在折线图中,有两个系列(Series 1 和 Series 2),每个系列对应一个颜色(蓝色和绿色)。在数据集中,每个系列的数据点通过一个字符串类型的分类变量(Category 1 到 Category 7)进行分类。使用 `LineAndShapeRenderer` 类来设置折线的颜色和是否显示数据点,使用 `CategoryAxis` 和 `NumberAxis` 类来配置 X 轴和 Y 轴的样式。
阅读全文