在3D gnuplot中使用xtics

时间:2014-03-06 19:04:03

标签: gnuplot

在我的数据文件中,我有三列:一个字符串和两个数字值。现在我想使用gnuplot创建一个3D图。不幸的是,我收到以下错误:

Need 1 or 3 columns for cartesian data

这是我的数据文件:

"Str1" 0 0
"Str1" 1 0
"Str1" 2 0

"Str2" 0 10
"Str2" 1 10
"Str2" 2 10

"Str3" 0 10
"Str3" 1 10
"Str3" 2 10

这是我的gnuplot脚本:

set surface 
set contour surface

set view 60, 30, 1, 1
set clabel '%8.2f'
set key right
set title "Graph Title"
set xlabel "X Axis Label"
set ylabel "Y Axis Label"
set zlabel "Z Axis Label"

set term pdfcairo color dashed font 'FreeSans,9'
set output "output.pdf"
splot "data2.txt" using xtic(1):2:3 notitle

set output

我不明白问题是什么。我已经在2D图中使用了xtic。另外,有三个“坐标”。我是否必须为x轴定义一些特殊的东西?

谢谢!

更新:

使用此脚本生成下图:

set grid
set view 60, 30, 1, 1
set clabel '%8.2f'
set key right
set title "Graph Title"
set xlabel "X label (String)"
set ylabel "number 1"
set zlabel "number 2"

set xtics ("Str1" 0, "Str2" 1, "Str3" 2)

set term pdfcairo color dashed font 'FreeSans,9'
set output "rpiCluster2.pdf"
splot "data2.txt" using (int($0)/3):2:3 with linespoints

set output

enter image description here

1 个答案:

答案 0 :(得分:3)

xtic不是坐标,而是字符串。你仍然需要一个x坐标:

splot "data2.txt" using (int($0)/3):2:3:xtic(1) notitle

请注意,标签不会多次写入,而只会写入一次。

要获得自动解决方案,您可以使用stats命令。这不会直接计算块,而是空行。对于您的测试数据,以下工作正常:

stats "data2.txt" using 2 nooutput
n = int(STATS_records/(STATS_blank + 1))

splot "data2.txt" using (int($0)/n):2:3:xtic(1) notitle