我需要在扩展模式下打印名为 xtics 的内容。问题是存储在“selected_indices”中的名称包含下划线。要在扩展模式下将它们打印为下划线,下划线前面必须有三个反斜杠。当我将 xtics 添加到绘图中时,如何自动插入这三个反斜杠?
原文:
n_indices = words(selected_indices)
selected_indices = "A_a B_b"
print selected_indices
想要:
selected_indices = "A\\\_a B\\\_b"
print selected_indices
set xtics ( '' 1 )
set for [i=1:n_indices] xtics add ( sprintf("{/:Bold %s}", word( selected_indices, i ) ) i )
我首先想到的就是用
_
替换 \_
。
请注意单引号和双引号的区别,"\\\_"
或'\_'
。
在下面的脚本中,定义了一个函数,将字符串中的第一个下划线(
_
)替换为反斜杠+下划线(\_
)。这样,您可以“取消”增强下标的下划线,但仍使用 ^
表示下标。也许有更好的解决方案。
脚本:
### unenhance underscore in enhanced textmode
reset session
$Data <<EOD
A_a^1 1
B_b^2 2
C_c^3 3
EOD
set offset 1,1,1,1
set key noautotitle
set style fill solid 0.4
ueus(s) = s[1:c=strstrt(s,'_')-1].'\_'.s[c+2:] # unenhance underscore
plot $Data u 0:2:xtic(ueus(strcol(1))) w boxes
### end of script
结果: