64 lines
1.7 KiB
Bash
Executable File
64 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 检查 Gnuplot 是否已安装
|
||
if ! command -v gnuplot &> /dev/null; then
|
||
echo "Gnuplot is not installed. Attempting to install..."
|
||
|
||
# 尝试自动安装 Gnuplot
|
||
if [[ "$(uname -s)" == "Linux" ]]; then
|
||
# 检查是否是基于 Debian/Ubuntu 的系统并使用 apt 安装
|
||
if command -v apt &> /dev/null; then
|
||
sudo apt update && sudo apt install -y gnuplot
|
||
# 检查是否是基于 RedHat/CentOS 的系统并使用 yum 安装
|
||
elif command -v yum &> /dev/null; then
|
||
sudo yum install -y gnuplot
|
||
else
|
||
echo "Unsupported package manager. Please install Gnuplot manually."
|
||
exit 1
|
||
fi
|
||
else
|
||
echo "Unsupported operating system. Please install Gnuplot manually."
|
||
exit 1
|
||
fi
|
||
|
||
# 再次检查是否安装成功
|
||
if ! command -v gnuplot &> /dev/null; then
|
||
echo "Gnuplot installation failed. Please install it manually."
|
||
exit 1
|
||
fi
|
||
|
||
echo "Gnuplot installed successfully."
|
||
fi
|
||
|
||
# 检查输入参数数量
|
||
if [ "$#" -ne 2 ]; then
|
||
echo "Usage: $0 input.xvg output.svg"
|
||
exit 1
|
||
fi
|
||
|
||
# 获取输入和输出文件名
|
||
input_file=$1
|
||
output_file=$2
|
||
|
||
# 检查输入文件是否存在
|
||
if [ ! -f "$input_file" ]; then
|
||
echo "Error: Input file '$input_file' not found!"
|
||
exit 1
|
||
fi
|
||
|
||
# 使用 Gnuplot 生成输出文件
|
||
gnuplot << EOF
|
||
set terminal svg size 800,600
|
||
set output '${output_file}'
|
||
|
||
# 设置标题和轴标签
|
||
set title 'Potential Energy Minimization'
|
||
set xlabel 'Step'
|
||
set ylabel 'Potential (kJ/mol)'
|
||
|
||
# 读取数据文件并绘制,使用第1列和第2列,忽略注释行
|
||
plot '${input_file}' using 1:2 with lines title 'Potential Energy (kJ/mol)'
|
||
EOF
|
||
|
||
echo "Plot generated: ${output_file}"
|