Plot 用字符串分组XTIC
我想在gnuplot中对一些tic进行分组。例如,x轴应该看起来像Plot 用字符串分组XTIC,plot,gnuplot,Plot,Gnuplot,我想在gnuplot中对一些tic进行分组。例如,x轴应该看起来像 | program 1 | program 2 | program 3 | program 4 | | group 1 | group 2 | 这怎么可能 更新: 根据,我有一个数据文件包含 10 20 30 40 所以我写了 set xtics ("program 1" 0, "program 2" 1, "program 3" 2, "program 4" 3)
| program 1 | program 2 | program 3 | program 4 |
| group 1 | group 2 |
这怎么可能
更新:
根据,我有一个数据文件包含
10
20
30
40
所以我写了
set xtics ("program 1" 0, "program 2" 1, "program 3" 2, "program 4" 3)
plot \
newhistogram "group 1", "data.txt" every ::1::2 with boxes, \
newhistogram "group 2", "data.txt" every ::3::4 with boxes
但是绘图不包含程序3和程序4,以下是您必须更改脚本的方式:
直方图
打印样式行堆叠
直方图每个
从0开始
set offset 0,0,1,0
set style data histogram
set style histogram rowstacked title offset 0,-1
set bmargin 4
set xtics ("program 1" 0, "program 2" 1, "program 3" 3, "program 4" 4)
plot newhistogram " \n group 1" , "data.txt" every ::0::1, \
newhistogram "group 2", "data.txt" every ::2::3
直方图之间留出1
的间隙。如果要将它们并排放置,可以将第二个放置在2处的。在这种情况下,您需要将xtics
调整回原来的状态
这给出了(见第4.6.4节):
如果要在框之间放置tic,则必须手动添加它们。没有这样的选项可以在标签之间设置TIC:
将主要tics的比例设置为0
,将次要tics的比例设置为主要tics的原始比例:Set xtics scale 0,1
在两个主要tic之间添加一个次要tic。使用设置mxtics 2
不起作用,因为这仅适用于自动XTIC。要添加次要tic,请使用set xtics add
并将1
指定为获取次要tic的级别:set xtics add(-0.5 1)
。您需要手动添加所有tic,但使用4.6.x可以迭代:设置为[i=-1:4]xtics add(i+0.5i)
通过这些更改(并使用设置boxwidth 0.8
和一些其他设置),结果如下(使用4.6.4):
以下是您必须如何更改脚本:
使用直方图
打印样式
使用行堆叠
直方图
每个
从0开始
set offset 0,0,1,0
set style data histogram
set style histogram rowstacked title offset 0,-1
set bmargin 4
set xtics ("program 1" 0, "program 2" 1, "program 3" 3, "program 4" 4)
plot newhistogram " \n group 1" , "data.txt" every ::0::1, \
newhistogram "group 2", "data.txt" every ::2::3
默认情况下,这会在两个直方图之间留出1
的间隙。如果要将它们并排放置,可以将第二个放置在2处的。在这种情况下,您需要将xtics
调整回原来的状态
这给出了(见第4.6.4节):
如果要在框之间放置tic,则必须手动添加它们。没有这样的选项可以在标签之间设置TIC:
将主要tics的比例设置为0
,将次要tics的比例设置为主要tics的原始比例:Set xtics scale 0,1
在两个主要tic之间添加一个次要tic。使用设置mxtics 2
不起作用,因为这仅适用于自动XTIC。要添加次要tic,请使用set xtics add
并将1
指定为获取次要tic的级别:set xtics add(-0.5 1)
。您需要手动添加所有tic,但使用4.6.x可以迭代:设置为[i=-1:4]xtics add(i+0.5i)
通过这些更改(并使用设置boxwidth 0.8
和一些其他设置),结果如下(使用4.6.4):
您可以手动放置一些标签。如果你还想把所有这些线都当作抽搐?如何做到这一点取决于灵活性,这些标签信息来自哪里(数据文件?),等等。也许你可以更精确一点,因为这是不可能开箱即用的,除非你正在处理直方图,请参阅。好的,我理解它,但无法复制它。请参阅更新后的帖子,您可以手动放置一些标签。如果你还想把所有这些线都当作抽搐?如何做到这一点取决于灵活性,这些标签信息来自哪里(数据文件?),等等。也许你可以更精确一点,因为这是不可能开箱即用的,除非你正在处理直方图,请参阅。好的,我理解它,但无法复制它。请参阅更新的post@mahmood我看到了关于设置标签之间的TIC的另一个问题(已删除),正在准备答案。我想它是针对这个用例的,所以我把它附加在这里。@mahmood我看到了关于设置标签之间的TIC的其他问题(已删除),正在准备答案。我想它是针对这个用例的,所以我把它附加在这里。