如何使用 gnuplot 制作两个值比较图?
how to make two values comparison graph using gnuplot?
如何绘制文件中两个值的比较图(第一行 - 标题,第二行 - 值,第三行 - 不确定性):
value1 value2
6,7147 6,7131
0,0036 0,0102
获取此图表:
在 linux(bash 脚本)下,使用 gnuplot。
你的数据格式有点不对劲。在这种情况下,如果转置数据会更好。
不幸的是,gnuplot 没有内置的转置函数。因此,如果您不能使用其他一些工具转置数据,则用于绘制此数据的 gnuplot 命令会变得有点麻烦。也许有一个我目前不知道的更简单的解决方案。
接下来是您在输入格式中使用逗号作为小数点分隔符。 gnuplot 中的标准是小数点(检查 help decimalsign
)。
您可以通过 set decimalsign locale "<...>"
更改它,例如french
或 german
或其他人应该可以工作,具体取决于您安装的内容。检查以下代码示例。
代码:
### yerrorbar with row data
reset session
# data format easy for gnuplot
$Data1 <<EOD
value1 6,7147 0,0036
value2 6,7131 0,0102
EOD
# data format difficult for gnuplot
$Data2 <<EOD
value1 value2
6,7147 6,7131
0,0036 0,0102
EOD
unset key
set decimalsign locale "french" # or "german" should also work
set xrange [0.5:2.5]
plot $Data1 u ([=10=]+1):2:3:xtic(1) w yerrorbar pt 5 lc "red" notitle
pause -1 # wait until OK pressed
plot for [i=1:2] y2=y1=NaN $Data2 u (i):(y0=y1,y1=y2,y2=column(i),y1):(y2):xtic(columnhead(i)) w yerrorbar pt 5 lc "blue"
### end of code
结果:
如何绘制文件中两个值的比较图(第一行 - 标题,第二行 - 值,第三行 - 不确定性):
value1 value2
6,7147 6,7131
0,0036 0,0102
获取此图表:
在 linux(bash 脚本)下,使用 gnuplot。
你的数据格式有点不对劲。在这种情况下,如果转置数据会更好。 不幸的是,gnuplot 没有内置的转置函数。因此,如果您不能使用其他一些工具转置数据,则用于绘制此数据的 gnuplot 命令会变得有点麻烦。也许有一个我目前不知道的更简单的解决方案。
接下来是您在输入格式中使用逗号作为小数点分隔符。 gnuplot 中的标准是小数点(检查 help decimalsign
)。
您可以通过 set decimalsign locale "<...>"
更改它,例如french
或 german
或其他人应该可以工作,具体取决于您安装的内容。检查以下代码示例。
代码:
### yerrorbar with row data
reset session
# data format easy for gnuplot
$Data1 <<EOD
value1 6,7147 0,0036
value2 6,7131 0,0102
EOD
# data format difficult for gnuplot
$Data2 <<EOD
value1 value2
6,7147 6,7131
0,0036 0,0102
EOD
unset key
set decimalsign locale "french" # or "german" should also work
set xrange [0.5:2.5]
plot $Data1 u ([=10=]+1):2:3:xtic(1) w yerrorbar pt 5 lc "red" notitle
pause -1 # wait until OK pressed
plot for [i=1:2] y2=y1=NaN $Data2 u (i):(y0=y1,y1=y2,y2=column(i),y1):(y2):xtic(columnhead(i)) w yerrorbar pt 5 lc "blue"
### end of code
结果: