如果我添加一个在第二行中间使用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
最后这是生成的图表:
答案 0 :(得分:14)
您有几个选项可以帮助解决xtic问题。
set xtics rotate by -45
这会将xtics设置为从左上角到右下角以一定角度打印。
set xtics font ",4"
你可以使字体变小但不可读。
set style histogram gap 4
如果您可以控制数据文件,可以尝试在xtic标签中插入一些换行符,例如
"17h30\n19h00\n25" 1
我对你的问题不太确定,但你可能会遇到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))
希望有所帮助