吾生有涯 学海无涯
析模有界 知识无界

Gnuplot|02 直方图与等值线图

本文介绍利用gnuplot绘制直方图与等值线图。

1 直方图

直方图仅用于二维图形。目前支持四种直方图布局样式:

set style histogram clustered {gap }
set style histogram errorbars {gap } {}
set style histogram rowstacked
set style histogram columnstacked
set style histogram {title font "name,size" tc }

默认的直方图样式为:set style histogram clustered gap 2。在此样式中,每组平行数据值都被收集到一组框中,这些框聚集在与它们在所选数据文件列中的顺序位置(ROW #)相对应的x轴坐标处。

如有下面的统计数据文件immigration.txt,其内容如下所示。注意文本文件中保留第一行表头。

Region		Denmark	Netherlands	Norway	Sweden
1891-1900 50231 26758 95015 226266
1901-1910 65285 48262 190505 249534
1911-1920 41983 43718 66395 95074
1921-1930 32430 26948 68531 97249
1931-1940 2559 7150 4740 3960
1941-1950 5393 14860 10100 10665
1951-1960 10984 52277 22935 21697
1961-1970 9201 30606 15484 17116

要生成直方图,可以使用下面的命令:

set style data histogram
plot 'immigration.txt' u 2:xtic(1),'' u 3, '' u 4,''u 5

生成的图形如下图所示。

不是一般的难看,这里需要进行修正。如采用下面的命令,使用修饰词ti col利用列名称作为图例。

plot 'immigration.txt' u 2:xtic(1) ti col,'' u 3 ti col, '' u 4 ti col,''u 5 ti col

生成图形如下图所示。

下面继续进行修改。

set auto x
set yrange [0:300000]
set style histogram cluster gap 1
replot

生成图形如下图所示。

美观了不少,但还是没有达到要求。这里将柱形使用不同颜色进行填充。

set style fill solid border -1
replot

图形变为下面的样子。

基本满足要求,不过x轴标签太过于拥挤,这里可以使用命令将其旋转一定的角度。

set xtic rotate by -45
replot

此时完成的图形如下图所示。

到现在图形已经OK了。

我们也可以使用rowstacked模式,该模式可以将各类数据堆放在一起。

set style histogram rowstacked
set boxwidth 0.8 relative
replot

生成图形如下图所示。

总结来说,绘制其直方图,可以采用下面的命令:

set auto x
set yrange [0:300000]
set style data histogram
set style histogram cluster gap 1
# 填充柱形图
set style fill solid border -1
# 设置条带宽度0.9
set boxwidth 0.9
# rotte by -45表示x轴标签旋转-45°
set xtic rotate by -45
# xtic(1)表示以第一列数据作为x轴的标签
plot 'immigration.txt' u 2:xtic(1) ti col,'' u 3 ti col, '' u 4 ti col,''u 5 ti col

2 等值线图

等值线图在实际应用中也较为频繁。一个简单的等值线图

# 设置使用等值线图
set contour
# 绘制函数x*y的等值面
splot x*y

生成图形如下图所示。

当然,这图比较粗糙,我们可以调整参数。

set samples 25
set isosamples 25
set key at screen 1.0,0.9
replot

此时图形变成下面这样:

这里可以增加等值线的数量:

# 设置图例的数量
set cntrparam levels 15
replot

图形变为下面这样:

还可以设置等值线的范围:

# 设置图例的变化区间
set cntrparam levels incr -100,10,100
replot

图形变成下面这样。

若想要数字标签,则可以使用:

# 显示等值线的值
splot x*y with lines,x*y with labels
unset key
replot

图形变成了下面这样:

若想要仅显示等值图,可以使用命令:

unset surface
# 设置视图
set view map
replot

图形变为下面的形式:

添加其他信息后图形如下所示。

本篇文章来源于微信公众号: CFD之道

赞(1) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Gnuplot|02 直方图与等值线图》
文章链接:https://www.topcfd.cn/15186/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册