如何在ubuntu中使用gnuplots组合图形

如何在ubuntu中使用gnuplots组合图形,gnuplot,Gnuplot,我有下面列出的两个数据文件 file1.dat a b c d(There is no colum name in my file) 70.9 70.4 71.3 65.6 70.8 70.9 72.8 68.1 72.00 72.4 70.6 67.9 70.2 71.5 71.7 70.9 71.00 71.2 71.1

我有下面列出的两个数据文件 file1.dat

a        b               c       d(There is no colum name in my file)
70.9    70.4        71.3    65.6
70.8    70.9        72.8    68.1
72.00   72.4        70.6    67.9
70.2    71.5        71.7    70.9
71.00   71.2        71.1    71.7
71.5    71.3        71.1    71.4
文件2.dat

 a           b       c      d(There is no colum name in my file)
70.9    67.5    71.3    64.67
72.2    71.2    72.8    65.5
72.4    70.2    70.6    68.6
71.6    72.1    71.3    67.9
70.2    72.2    71.1    70.8
71.2    71.7    71.9    71.7
72.00   71.4    71.7    71.3
70.8    71.7    71.4    71.3
我想创建一个图a1、a2、b1、b2、c1、c2、d1、d2,这是怎么可能的

守则:

set title "Unigram features ranked using MI of POSITIVE class" 
set title font ", 20" 
set xlabel "Feature Length"
set xlabel font ",20"
set ylabel "Accuracy(%)"
set yrange [65:75]
set ylabel font ",20"
set ytics font ", 20" 
set boxwidth 0.98

set key font ",18"
set style fill pattern #solid


set style histogram clustered #gap 5 title  offset character 0, 0, 0
set xtics font ", 20" 
set xtics ("100" 0, "300" 1, "500" 2, "1300" 3, "1500" 4, "1800" 5, "1900" 6, "2000" 7)
set style data histograms

plot "< paste without_threshold_POSITIVE.dat with_threshold_POSITIVE.dat" using 1:5 every ::1, \
"" using 2:6 every ::1, \
"" using 3:7 every ::1, \
"" using 4:8 every ::1

set output 'POSITIVE_test.eps'

set terminal postscript eps enhanced black
replot
设置标题“使用阳性类别的MI对Unigram特征进行排序”
设置标题字体“20”
设置xlabel“特征长度”
设置xlabel字体“20”
设置标签“精度(%)”
设置Y范围[65:75]
设置标签字体“20”
设置ytics字体“20”
将箱宽设置为0.98
设置键字体“18”
设置样式填充图案#实心
设置样式直方图聚集#间距5标题偏移字符0,0,0
设置xtics字体“20”
设置xtics(“100”0、“300”1、“500”2、“1300”3、“1500”4、“1800”5、“1900”6、“2000”7)
设置样式数据直方图
使用1:5 every::1打印“

请找到代码..并试着指出我的错误

正如Christoph在评论中提到的那样,您需要预处理您的数据,对于这一点,
粘贴
是一个很好的工具:

paste file1.dat file2.dat > file3.dat
将粘贴您的列。由于每个文件有4列,因此在新的
file3.dat
中,第1列到第4列来自
file1.dat
,第5列到第8列来自
file2.dat
。因此,您需要使用1:5、2:6、3:7和4:8绘制

plot "file3.dat" using 1:5 every ::1, \
"" using 2:6 every ::1, \
"" using 3:7 every ::1, \
"" using 4:8 every ::1
其中,使用
every::1
我告诉gnuplot忽略第一行非可打印文本(您也可以使用
#
注释掉这一行)。您可以在gnuplot内执行
粘贴
预处理,而无需生成
文件3.dat

plot "< paste file1.dat file2.dat" using 1:5 every ::1, \
"" using 2:6 every ::1, \
"" using 3:7 every ::1, \
"" using 4:8 every ::1
使用1:5 every::1打印“
直方图
打印样式只需要一列。我不完全确定,您希望a1、a2、b1、b2等列如何排列,以及手动XTIC如何发挥作用

我假设,第一个x值对应于第一行的标签,依此类推

以下是如何设置a2列下的a1框进行比较:

set title "Unigram features ranked using MI of POSITIVE class" 
set xlabel "Feature Length"
set ylabel "Accuracy(%)"
set yrange [65:75]
set boxwidth 0.98

set style fill solid

set style histogram clustered #gap 5 title  offset character 0, 0, 0
set xtics ("100" 0, "300" 1, "500" 2, "1300" 3, "1500" 4, "1800" 5, "1900" 6, "2000" 7)
set style data histograms

plot "file1.dat" using 1 every ::1 t 'a1', \
     "file2.dat" using 1 every ::1 t 'a2'
b1、b2列应在a1、a2列之间对齐,即按行分组,还是在不同柱状图中彼此下方对齐

上述脚本的结果是(带有4.6.4):


您想要使用这些对的XY散点图吗?我想要XY散点图中的哪些文件您必须先将两个文件合并为一个文件,然后才能执行此操作,例如,使用
粘贴
,另请参见。错误:plot“every::1,如果它们每个列少于四列(这似乎是您收到的错误消息的来源)然后,您需要使用
选项更改
。是的,我尝试删除了every::1,因此在使用中遇到了一个错误,例如列太多specification@user3512562在处理文件之前,文件中到底有多少列?
直方图
打印样式只需要一列,自动选择x值。