查看原文
其他

介绍一款基于gnuplot的Java绘图工具——JavaPlot

Lcpsky NewTech精选
2024-09-10
在科研和工程领域,数据可视化是一项至关重要的工作。它不仅可以帮助我们更直观地理解数据,还能有效地传达我们的研究成果。gnuplot是一款功能强大的开源图表绘制软件,支持多种数据格式,可以轻松生成各种类型的图表,如折线图、散点图、柱状图等。本文将介绍一款基于Java的gnuplot中间件——JavaPlot,并分享其在实际科研工作中的使用经验。

JavaPlot简介

JavaPlot是一款跨平台的命令行驱动的绘图工具,它支持Linux、OS/2、MS Windows、OSX、VMS等多种操作系统。JavaPlot支持2D和3D的多种绘图类型,包括线图、点图、箱线图、等高线图、向量场图、曲面图等。它还能绘制各种相关的文本,支持多种专业的绘图类型。

JavaPlot是一款纯Java编写的gnuplot中间件,通过Java命令实时创建gnuplot图表。与其它gnuplot Java库相比,JavaPlot使用Java结构存储各种图表参数,包括数据集。此外,JavaPlot足够灵活,即使不支持某些特殊参数,也能生成对应的gnuplot图表。在使用过程中,JavaPlot通过Java异常机制提示用户可能的错误。JavaPlot要求Java 1.5(或更高版本)运行,以支持泛型、自动装箱等1.5版本的新特性,方便图表数据的操作。目前已测试过gnuplot 4.2版本,更低版本可能存在兼容性问题。JavaPlot已在Windows、Linux和Mac OS X系统上进行过测试,其他系统可通过调整特殊参数使其正常工作。

高斯分布
JavaPlot支持多种输出方式:交互式屏幕终端(支持鼠标和热键输入)、直接输出到绘图仪或现代打印机,以及输出到多种文件格式(如eps、emf、fig、jpeg、LaTeX、pdf、png、postscript等)。Gnuplot易于扩展,以支持新的输出模式。最近新增的包括基于wxWidgets(可在多个平台上使用)和Qt的交互式终端。使用svg或HTML5 canvas终端驱动,还可以生成嵌入在网页中的可鼠标操作的图表。
三维

安装和使用

因为JavaPlot依赖gnuplot绘图工具,所以需要先安装Gnuplot。大多数Linux发行版和OSX都提供了预编译的二进制包,可以直接安装。对于Windows用户,可以从Gnuplot的官方网站下载安装程序进行安装。
演示案例

JavaPlot的演示案例位于"demo/dist"目录下。使用方法如下:

cd demo/dist ; java -jar demo.jar

示案例的源代码可查看"demo/src/demo.java"文件。

如果出现以下错误,则可能是未安装gnuplot导致。

Exception in thread "main" com.panayotis.gnuplot.GNUPlotException: GnuPlot executable "gnuplot" not found. Please provide gnuplot path to the constructor of GNUPlot.

要在项目中使用JavaPlot,首先需将"dist/JavaPlot.jar"库文件添加到类路径中。创建JavaPlot对象是开始绘制图表的最简方式。具体使用方法可参考"demo/src/demo.java"。

高级用法

要深入了解JavaPlot,需要掌握"PropertiesHolder"类,它是库的基础属性持有者。该类可用于存储键值对,通过set()和unset()方法为创建gnuplot程序添加参数。

若要在Java中使用SVG输出,需要一个处理SVG文件的库。此软件包中提供了一个名为SVGSalamander的库,但存在一个忽略颜色值的bug,导致所有SVG图表中的颜色均为黑色。 

下载方式

点击下面「公众号:NewTech精选」卡片,进入之后对话框发送关键词:jplot

如果您觉得文章对您有帮助,可以帮忙点一下文末广告,给小编加个鸡蛋。

往期推荐


  1.  推荐一款开源的个人云存储解决方案
  2. 分享一个全能截图工具——Pic Pick
  3. 分享两个免费可用的OCR软件
  4. 分享一个Windows窗口置顶工具——Moo0
  5. 推荐一款矢量图编辑器——AxGlyph
  6. 推荐一个将智能手机变成电脑的触摸屏的软件——Weylus!
  7. 推荐一款简单易用的剪贴板管理器——Ditto
  8. 推荐一款桌面整理酷软——Coodesker
素材来源官方媒体/网络新闻
继续滑动看下一个
NewTech精选
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存