Gnuplot xticlabels有几行

时间:2013-04-12 15:45:37

标签: plot gnuplot

如果我添加一个在第二行中间使用3行gnuplot切割的xticlabel。 有没有方法可以让xticlabels有几行?

这是我的数据文件:

"[17h30,19h00] 25" 1
"[03h30,10h00] 21" 1
"[03h00,12h00] 26" 2
"[18h00,19h30] 27" 3
"[20h30,22h00] 25" 4
"[13h00,14h30] 25" 4
"[19h30,21h30] 25" 5
"[14h30,16h00] 25" 5
"[16h30,18h00] 25" 5
"[09h30,15h00] 25" 9

这是我的gnuplot代码:

set terminal postscript eps color
set output '| epstopdf --filter --outfile=hist.pdf'
set auto x
set yrange [0:10]
set style histogram clustered
set boxwidth 0.95 relative
set style fill transparent solid 0.5 noborder
plot 'hist.dat' using 2:xticlabels(1) with boxes lc rgb'blue90' notitle

最后这是生成的图表:

enter image description here

2 个答案:

答案 0 :(得分:14)

潜在问题1:xtics重叠

您有几个选项可以帮助解决xtic问题。

1)旋转xtics

set xtics rotate by -45

这会将xtics设置为从左上角到右下角以一定角度打印。

2)更改字体大小

set xtics font ",4"

你可以使字体变小但不可读。

3)在图形的条形

之间添加间隙
set style histogram gap 4

4)更改数据文件

如果您可以控制数据文件,可以尝试在xtic标签中插入一些换行符,例如

"17h30\n19h00\n25" 1

潜在问题2:xtics一般来说太长

我对你的问题不太确定,但你可能会遇到this issue。 Gnuplot对标签中的字符数有内置限制,在旧版本的gnuplot中设置为50,最近为200。我链接的帖子包含一个解决方法,即编译一个增加MAX_ID_LEN常量的gnuplot版本。

答案 1 :(得分:3)

我有一个类似的问题,但在我的情况下,标签取自两列(一个字符串列(1)和一个数字列(2)),而y-data取自第三列。

我使用换行符“\ n”

将标签拆分为两个
using 2:3:xticlabels(stringcolumn(1) . "\n\n" . stringcolumn(2)) 

例如,基本上在xticlabels()中你可以给出任何字符串表达式 我还需要一些数字格式,我使用而不是stringcolumn(2)表达式:

gprintf('%1.0t*10^{%S}',column(2))

希望有所帮助