我在epslatex gnuplot中更改ytics(xtics)的字体大小时遇到问题。
我尝试了设置格式y '\tiny{%g}'
它仅适用于两个地块中的第一个。
这是我的代码:
set terminal epslatex
set output "w_alt_nsyB_multi.tex"
set multiplot layout 1,1
set xrange [-0.5:17]
set yrange [0:110]
set xlabel "days"
set ylabel "Survival (\\%)" offset 2.5
set key reverse
set xtics font 'Arial,4' s
et style histogram errorbars gap 2 lw 1
set style data histogram
set style fill solid 1 border lt -1
set boxwidth 0.8
plot 'w_alt_nsyB.dat' every ::::7 using 2:3:xticlabels(1) title 'w1118' lt rgb "#000000",\
'w_alt_nsyB.dat' every ::::7 using 4:5 title 'wtSYN' lt rgb "#FF0000",\
'w_alt_elav_endoG.dat' every ::::7 using 6:7 title '38085' lt rgb "#9400D3"
set origin 0.5, 0.25
set size 0.5, 0.5
set xrange [-0.5:6]
set yrange [0:110]
set xlabel "\\tiny{Time of $Mn^{2+}$ treatment}"
set ytics ('10'10,'50'50,'100'100) nomirror
unset border
set xtics nomirror
unset ylabel
unset key
plot 'w_alt_nsyB_100.dat' using 2:3:xticlabels(1) lt rgb "#000000",\
'w_alt_nsyB_100.dat' using 4:5:xticlabels(1) lt rgb "#FF0000",\
'w_alt_nsyB_100.dat' using 6:7:xticlabels(1) lt rgb "#9400D3"
unset multiplot
有人可以帮我吗?
答案 0 :(得分:3)
如果您提供明确的手动标签,则不会应用set format ...
中给出的格式
set ytics ('10'10,'50'50,'100'100)
您必须只提供标签的位置
set format y '\tiny %g'
set ytics (10, 50, 100)
或在每个手册标签中包含字体宏
set ytics ('\tiny 10' 10, '\tiny 50' 50, '\tiny 100' 100)
另请注意,您的语法\tiny{%g}
错误,\tiny
只是一个开关而且不接受任何参数。在这种情况下,它并不重要,因为每个标签都包裹在一个单独的乳胶盒中,但在其他情况下它会产生很大的不同。要包装您通常需要的小字体{\tiny %g}
。
使用xticlabel
设置的显式标签也会出现同样的情况。此处,set format x
的格式不适用。您必须提供包含宏的完整标签字符串,而不是将列号提供给xticlabel
(如示例中的xticlabel(1)
):
xl(c) = sprintf('\tiny %s', strcol(c))
plot 'file.dat' using 2:3:xticlabel(xl(1))
下次,请提供 minimal 示例,以便其他人重现您的问题。我们没有您的数据文件来运行脚本。而且您的问题与您的特定数据文件无关,因此您也可以使用函数构建示例,这可能会让您自己找到解决方案......