程序员的绘图利器 — Gnuplot

2024-03-27 18:20

本文主要是介绍程序员的绘图利器 — Gnuplot,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

 

Gnuplot is a command-line program that can generate two- and three-dimensional plots.

It is frequently used for publication-quality graphics as well as education.

The program can be used both interactively and in batch mode using scripts.

gnuplot is programmed in C.

For script-driven graphics, gnuplot is by far the most popular program.

 

先上一张效果图:

 

用法

 

(1)数据文件格式

Discrete data contained in a file can be displayed by specifying the name of the data file (enclosed in quotes)

on the plot or splot command line. Data files should have the data arranged in columns of numbers. Columns

should be separated by white space (tabs or spaces) only, (no commas). Lines beginning with a # character

are treated as comments and are ignored by gnuplot. A blank line in the data file results in a break in the line

connecting data points.

 

(2)风格定制

一般需要指明:

ranges of the axes

labels of the x and y axes

style of data point

style of the lines connecting the data points

title of the entire plot

 

Plots may be displayed in one of styles:

lines

points

linespoints

impulses

dots

steps

fsteps

histeps

errorbars

xerrorbars

yerrorbars

xyerrorbars

boxes

boxerrorbars

boxxyerrorbars

financebars

candlesticks

vector

 

实例

 

(1)基础

set title "Some math functions" // 图片标题

set xrange [-10:10] // 横坐标范围

set yrange [-2:2] // 纵坐标范围

set zeroaxis // 零坐标线

plot (x/4)*2, sin(x), 1/x // 画函数

 

(2)三维曲线

splot sin(x), tan(x) // 画sin(x)和tan(x)的三维曲线

 

(3)多条曲线

plot sin(x) title 'Sine', tan(x) title 'Tangent' // 画多条曲线,并且分别指定名称

 

从不同数据文件中提取信息来画图:

plot "fileA.dat" using 1:2 title 'data A', \

        "fileB.dat" using 1:3 title 'data B'

 

(4)点和线风格

plot "fileA.dat" using 1:2 title 'data A' with lines, \

        "fileB.dat" using 1:3 title 'data B' with linespoints

可以使用缩写:

using title and with can be abbreviated as u t and w.

 

plot sin(x) with line linetype 3 linewidth 2

或plot sin(x) w l lt 3 lw 2

plot sin(x) with point pointtype 3 pointsize 2

或plot sin(x) w p pt 3 ps 2

 

颜色列表大全:

http://www.uni-hamburg.de/Wiss/FB/15/Sustainability/schneider/gnuplot/colors.htm

用法:lc grb "greenyellow"

 

线条颜色,点的为pointtype

linetype 1 // 红色

linetype 2 // 绿色

linetype 3 // 蓝色

linetype 4 // 粉色

linetype 5 // 比较浅的蓝色

linetype 6 // 褐色

linetype 7 // 橘黄色

linetype 8 // 浅红色

 

线条粗细,点的为大小pointsize

linewidth 1 // 普通的线

linewidth 2 // 比较粗

linewidth 3 // 很粗

 

(5)常用

replot // 重绘

set autoscale // scale axes automatically

unset label // remove any previous labels

set xtic auto // set xtics automatically

set ytic auto // set ytics automatically

set xtics 2 // x轴每隔2设一个标点

set xlabel "x axe label"

set ylabel 'y axe label"

set label 'Yield Point" at 0.003,260 // 对一个点进行注释

set arrow from 0.0028,250 to 0.003,280 // 两点之间添加箭头

set grid // 添加网格

reset // gnuplot没有缩小,放大后只能reset后重绘,remove all customization

set key box // 曲线名称加框

set key top left // 改变曲线名称位置

set format xy "%3.2f" // x轴和y轴坐标格式,至少有3位,精确到小数点后两位

quit、q、exit // 退出程序

 

(6)绘制多个图

set size 1,1 // 总的大小

set origin 0,0 // 总的起点

set multiplot // 进入多图模式

set size 0.5,0.5 // 第一幅图大小

set origin 0,0.5 // 第一幅图起点

plot sin(x)

set size 0.5,0.5

set origin 0,0

plot 1/sin(x)

set size 0.5,0.5

set orgin 0.5,0.5

plot cos(x)

set size 0.5,0.5

set origin 0.5,0

plot 1/cos(x)

unset multiplot

 

(7)输出文件

set terminal png size 1024, 768 // 保存文件格式和大小

set output "file.png" // 保存文件名称

set terminal X11 // 重新输出到屏幕

 

(8)脚本

a.plt //后缀名为plt

gnuplot> load 'a.plt'

或gnuplot a.plt

save "graph.gp"

或save "graph.plt"

传入参数

call "a.plt" param1 param2

param1、param2在a.plt中对应于$0、$1

 

(9)字体设置

输出错误:

Could not find/open font when opening font "arial", using internal non-scalable font

下载RPM包:

wget http://www.my-guides.net/en/images/stories/fedora12/msttcore-fonts-2.0-3.noarch.rpm

rpm -ivh msttcore-fonts-2.0-3.noarch.rpm

设置环境变量:

修改/etc/profile或~/.bashrc,这样设置可以固定下来。

export GDFONTPATH="/usr/share/fonts/msttcore"

export GNUPLOT_DEFAULT_GDFONT="arial"

. /etc/profile

OK,现在可以使用arial字体了。


 

Reference

 

[1]. http://en.wikipedia.org/wiki/Gnuplot

[2]. http://people.duke.edu/~hpgavin/gnuplot.html

[3]. http://blog.csdn.net/liyuanbhu/article/details/8502461

[4]. http://linux.chinaunix.net/techdoc/develop/2009/07/21/1125242.shtml

[5]. http://www.fnal.gov/docs/products/gnuplot/manual/

[6]. gnuplot中文手册

 

这篇关于程序员的绘图利器 — Gnuplot的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852972

相关文章

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

键盘快捷键:提高工作效率与电脑操作的利器

键盘快捷键:提高工作效率与电脑操作的利器 在数字化时代,键盘快捷键成为了提高工作效率和优化电脑操作的重要工具。无论是日常办公、图像编辑、编程开发,还是游戏娱乐,掌握键盘快捷键都能带来极大的便利。本文将详细介绍键盘快捷键的概念、重要性、以及在不同应用场景中的具体应用。 什么是键盘快捷键? 键盘快捷键,也称为热键或快捷键,是指通过按下键盘上的一组键来完成特定命令或操作的方式。这些快捷键通常涉及同

matplotlib绘图中插入图片

在使用matplotlib下的pyplot绘图时,有时处于各种原因,需要采用类似贴图的方式,插入外部的图片,例如添加自己的logo,或者其他的图形水印等。 一开始,查找到的资料都是使用imshow,但是这会有带来几个问题,一个是图形的原点发生了变化,另外一个问题就是图形比例也产生了变化,当然最大的问题是图形占据了整个绘图区域,完全喧宾夺主了,与我们设想的只在绘图区域中占据很小的一块不相符。 经

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

海龟绘图简易教程|Turtle for Python

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。 原文链接|海龟绘图简易教程 1. 基本

GraphPad Prism 10 for Mac/Win:高效统计分析与精美绘图的科学利器

GraphPad Prism 10 是一款专为科研工作者设计的强大统计分析与绘图软件,无论是Mac还是Windows用户,都能享受到其带来的便捷与高效。该软件广泛应用于生物医学研究、实验设计和数据分析领域,以其直观的操作界面、丰富的统计方法和多样化的图表样式,成为科学研究的得力助手。 数据处理与整理 GraphPad Prism 10 支持从多种数据源导入数据,如Excel、CSV文件及数据库

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

MATLAB绘图基础5:MATLAB数据导入

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 5.MATLAB数据导入 5.1 从CSV文件读取数据 C S V {\rm CSV} CSV文件是一种纯文本文件,文件中的数据以逗号为分隔符进行字段分隔,每一行数据代表一条记录,每个字段在该行内通过逗号进行分隔; C S V {\rm CSV} CSV文件可以使用任何文本