我想设置像这个Matlab图形的ytics符号(在图形框上只有一个x10 ^ -5)whit gnuplot。有可能吗?
答案 0 :(得分:1)
你当然可以在gnuplot中手动执行 ,使用多个终端的enhanced
选项并设置label
:
set terminal pngcairo enhanced
set output "out.png"
set tmargin at screen 0.95
set label at graph 0,1.05 left 'x 10^{-5}'
plot x
但请注意,您还必须手动缩放y轴,例如在当前情况下通过将函数f(x)
的输出缩放为1e5 * f(x)
。
如果您使用乳胶终端,则只需使用乳胶语法标记:set label ... '$\times 10^{-5}$'
。
如果这还不够,那么也许其他人可能会提供更自动的解决方案。
答案 1 :(得分:0)
更自动化的解决方案是使用unknown
终端估算自动缩放的yrange限制,计算数量级,设置比例和重新绘制:
set terminal push
set terminal unknown
scale = 1.0
plot 'data.dat' using 1:($2/scale) w lp
set terminal pop
max(x,y) = (x > y ? x : y)
exponent = log10(max(abs(GPVAL_Y_MAX), abs(GPVAL_Y_MIN)))
oom = (ceil(exponent) == exponent ? exponent : ceil(exponent) - 1)
scale = 10**oom
set encoding utf8
set label left at graph 0, graph 1.05 sprintf('✕ 10^{%d}', int(oom)) enhanced
set tmargin 4
replot