在我的数据文件中,我有三列:一个字符串和两个数字值。现在我想使用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
答案 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