Graph GnuPlot中的三维绘图,其中颜色是我的数据文件中的第四列?

Graph GnuPlot中的三维绘图,其中颜色是我的数据文件中的第四列?,graph,colors,gnuplot,4d,Graph,Colors,Gnuplot,4d,我有一个如下所示的数据文件: 1 2 3 0.5 2 8 9 0.2 3 4 78 0.4 6 5 7 0.01 9 9 9 0.3 10 12 18 0.9 6 8 4 1 我想画一张这样的图表 其中第4列是颜色 我尝试过-显然不正确,因为我没有使用第四列,但在文档中找不到任何内容: set dgrid3d 30,30 set view 60,45 set hidden3d dataFile='prova.dat'

我有一个如下所示的数据文件:

1   2   3   0.5
2   8   9   0.2
3   4   78  0.4
6   5   7   0.01
9   9   9   0.3
10  12  18  0.9
6   8   4   1
我想画一张这样的图表 其中第4列是颜色

我尝试过-显然不正确,因为我没有使用第四列,但在文档中找不到任何内容:

set dgrid3d 30,30
set view 60,45
set hidden3d
dataFile='prova.dat'
set palette defined (0 "blue", 0.5 "white", 1 "pink")
set pm3d 
splot dataFile u 1:2:3 with pm3d

这样的事情可能吗?

仅使用
pm3d
可以使用第四列来选择与z值无关的颜色。与
dgrid3d
一起,这是不可能直接实现的,因为不在颜色列上执行网格化

您可以使用一种解决方法:首先将网格z值打印到一个文件,然后将网格颜色值打印到第二个文件,最后禁用
dgrid3d
,动态合并两个临时文件并打印其值:

set dgrid3d 30,30
dataFile='prova.dat'

set table dataFile.'.grid'
splot dataFile u 1:2:3
unset table

set table dataFile.'.color'
splot dataFile u 1:2:4
unset table

set view 60,45
set hidden3d
set palette defined (0 "blue", 0.5 "white", 1 "pink")
set autoscale cbfix
set pm3d
unset dgrid3d
set ticslevel 0
splot sprintf('< paste %s.grid %s.color', dataFile, dataFile) u 1:2:3:7 with pm3d notitle

当然,为此您必须安装python,并且python二进制文件必须通过
PATH
环境变量提供。

感谢您的快速回答。我不是一个熟练的用户,因此我不理解-使用版本4.6 patchlevel 5运行代码-代码生成的警告:第19行:警告:跳过不可读的文件“粘贴prova.dat.grid prova.dat.color”第19行:警告:此绘图中没有可用数据自动缩放轴范围splot sprintf('粘贴%s.grid%s.color',数据文件,数据文件)u 1:2:3:7使用pm3d notitle^“C:\Users\Baroni\Desktop\prova.plt”,第19行:所有点x值未定义我安装了python和PATH,我创建了一个脚本作为您的链接,但没有进度。您必须使用我编写的最后一个命令,使用
…)。
我使用了pass©,所以我想问题是我的env中没有Gnuplot.py,我正在尝试解决这个问题。不,你不需要Gnuplot.py!根据错误消息,您没有使用正确行的复制粘贴。您必须使用我在图像后面提到的
splot
命令:
splot sprintf('python paste.py%s.grid%s.color',dataFile,dataFile)u 1:2:3:7和pm3d notitle
。使用python及其路径&Gnuplot,有以下警告:
第19行:警告:跳过不可读的文件“splot sprintf(“
splot sprintf('< python paste.py %s.grid %s.color', dataFile, dataFile) u 1:2:3:7 with pm3d notitle