jFree Chart学习-柱状图

本文介绍如何使用Java和JFreeChart库绘制简单的柱状图。首先需要在项目中添加jcommon和jfreechart两个依赖,然后通过代码创建数据集并使用ChartFactory生成柱状图,最后将图表保存为图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提要添加依赖的jar包,在你个pom.xml文件中添加如下依赖
1.第一个是jcommon

<!-- https://mvnrepository.com/artifact/jfree/jcommon -->
        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jcommon</artifactId>
            <version>1.0.16</version>
        </dependency>

2.第二个是jfree

<dependencies>
 <!-- https://mvnrepository.com/artifact/jfree/jfreechart -->
        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.13</version>
        </dependency>

具体代码实现如下

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 使用JFree绘制柱状图
 */
public class BarChart {
    public static void main(String[] args) throws IOException {
        //数据集
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        //value row column
        dataset.addValue(100, "java", "program language");
        dataset.addValue(200, "scala", "program language");
        dataset.addValue(300, "r", "program language");
        dataset.addValue(400, "python", "program language");
        //通过ChartFactory静态方法的createBarChart生成一个JFreeChart 柱状图对象
        JFreeChart chart = ChartFactory.createBarChart(
                "chart",    //标题
                "x",    //x轴名称
                "y",    //y轴名称
                dataset,//数据集
                PlotOrientation.VERTICAL,//使用垂直柱状图
                true,//是否使用legend
                false,//是否使用tooltip
                false);   //是否使用url
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream("target/bar1.png");
            //调用ChartUtilities类生成图表
            //输出流,表,y轴,x轴长度
            ChartUtilities.writeChartAsJPEG(fos, chart, 400, 300);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            System.out.println("图片生成完成");
            fos.close();
        }

    }
}

运行结果

这里写图片描述

### 创建和定制BarChart柱状图 #### 使用JFreeChart创建柱状图 为了利用JFreeChart库来构建柱状图,开发者需先完成该库的安装与配置工作[^1]。一旦环境准备就绪,则可以通过如下方式创建一个简单的柱状图实例: ```java // 导入必要的类 import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.data.category.DefaultCategoryDataset; public class BarChartExample { public static void main(String[] args) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // 添加数据到数据集 dataset.addValue(1, "Series", "Category 1"); dataset.addValue(4, "Series", "Category 2"); dataset.addValue(3, "Series", "Category 3"); // 创建柱状图 JFreeChart barChart = ChartFactory.createBarChart( "Sample Bar Chart Title", "X-Axis Label", "Y-Axis Label", dataset); // 这里可以进一步设置表样式或其他属性... } } ``` 上述代码展示了如何初始化`DefaultCategoryDataset`并填充一些样本数值,之后借助于`ChartFactory.createBarChart()`方法生成了一个具有默认样式的柱形。 #### LabVIEW中的柱状图应用 在LabVIEW环境中,用户界面设计分为前面板(Front Panel)和程序框(Block Diagram)。前者负责展示最终形成的柱状图给用户观看;后者则是编写逻辑的地方,在这里能够执行诸如读取外部文件获取绘所需的数据等一系列操作[^2]。 #### 利用QCustomPlot绘制柱状图 针对希望采用C++进行开发的技术人员而言,QCustomPlot提供了一套简洁易懂的方法去实现各种类型的形化表示形式,其中包括了柱状图。下面给出一段基于此框架制作简单直方的例子[^3]: ```cpp #include <qcustomplot.h> #include <vector> void createSimpleBar(QCustomPlot *customPlot){ QVector<double> xData{0, 1, 2}; QVector<double> yData{5, 7, 6}; customPlot->addGraph(); customPlot->graph()->setData(xData, yData); // 设置为条形模式 customPlot->graph()->setLineStyle((QCPGraph::LineStyle)QCPLineEnding::esNone); customPlot->graph()->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssRect)); customPlot->xAxis->setLabel("X Axis"); customPlot->yAxis->setLabel("Y Axis"); customPlot->rescaleAxes(); } int main(){ QCustomPlot plot; createSimpleBar(&plot); plot.show(); return QApplication::exec(); } ``` 这段源码片段说明了怎样向`QCustomPlot`对象内加入新的形元素,并调整它们之间的关系使之呈现出标准的柱状结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值