Skip to main content

A Python script that processes Multiwfn spectral data and plots various spectra.

Project description


KimariDraw 是一款开源的 Python 脚本,旨在绘制各种光谱图形,特别适用于处理著名的波函数分析程序 Multiwfn 生成的光谱数据。它能够将 Multiwfn 生成的数据以美观、清晰的方式重新绘制成单曲线单子图、多曲线单子图、单曲线多子图以及多曲线多子图。

当你使用 KimariDraw 时,你可以享受到以下的功能:

  • 支持多种光谱类型:KimariDraw 支持使用 Multiwfn 绘制 NMR、IR 等光谱导出的数据,即 Multiwfn 生成的文本文件。

  • 支持多子图绘制:KimariDraw 不仅支持一单子图的绘制,同时也支持多子图的绘制。

  • 支持多种文件格式:KimariDraw 支持将图片导出为多种文件格式,如 PNG、JPG、PDF、SVG 等。

  • 易于安装和配置:KimariDraw 的安装和配置十分简单,您只需要按照项目 README 文件中的说明进行操作即可。

  • 自定义功能强大:KimariDraw 可以根据需要自定义曲线的颜色、图例以及格式,可以达到科研论文要求。

Multiwfn 是一个非常强大的波函数分析程序。Multiwfn 免费、开源、高效、灵活,它支持几乎所有最重要的波函数分析方法。目前,Multiwfn 是量子化学领域的常用工具之一,得到了广泛的应用和认可。

如果您对 Multiwfn 还不熟悉,请访问 Multiwfn 官网了解更多信息。

安装

常规安装

  1. 首先,安装 Python 环境和 pip 包管理工具。如果您还没有安装它们,请先安装它们。并确保 Python 版本为 3.8 版本,如果和开发的版本不符,有可能无法运行 KimariDraw。
python==3.8.13
  1. 下载 KimariDraw 源代码:
git clone https://github.com/kimariyb/kimariDraw.git
  1. 进入 KimariDraw 目录并安装依赖:
cd kimariDraw
pip install -r requirements.txt

这将自动安装 KimariDraw 所需的 pandas、matplotlib 和 proplot 等依赖项。请注意,如果您已经安装了这些依赖项,则可以跳过此步骤。如果由于网速问题,下载过慢,可以尝试使用国内源安装依赖。

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

虚拟环境安装

推荐! 我们推荐使用 anaconda 虚拟环境进行安装,方便对包进行管理,同时也不会影响其他项目的环境。

  1. 如果没有安装 Python,可以不用安装 Python,直接前往 anaconda 官网下载 anaconda 最新版本。安装并配置好以后,使用 anaconda 新建一个环境。
conda create -n kimaridraw python=3.8.13
  1. 激活名为 kimaridraw 的 conda 环境:
conda activate kimaridraw
  1. 下载 KimariDraw 源代码:
git clone https://github.com/kimariyb/kimariDraw.git
  1. 进入 KimariDraw 目录并安装依赖:
cd kimariDraw
pip install -r requirements.txt

这将自动安装 KimariDraw 所需的 pandas、matplotlib 和 proplot 等依赖项。同时,由于激活的 conda 环境,因此 pip 安装的包只会在 kimaridraw 环境下使用,如果不激活就不会被使用。这样就很好的避免了不同任务依赖的环境不同,所导致的版本冲突。

使用

在使用 KimariDraw 之前,必须使用 Multiwfn 自行根据量子化学计算程序生产的各种光谱计算产生的 .out 文件得到光谱的数据。如果不了解如何使用 Multiwfn 绘制各类光谱,可以浏览 Sob 的 使用Multiwfn绘制红外、拉曼、UV-Vis、ECD、VCD和ROA光谱图

请注意:在正式运行前,请确保已经安装了 KimariDraw 所需要的模块和包,以免程序报错!

直接通过命令行进入主程序

KimariDraw 可以直接使用命令行进入主程序:

python kimaridraw.py

进入主程序后会显示一些版本信息以及其他的一些信息。同时问你是否使用默认的 settings.toml 文件,如果选择 y 则会在当前文件夹下寻找这个文件,如果选 n 则需要手动输入一个 toml 文件。toml 文件是用来记录配置文件信息的,详情请浏览 配置 一节。

KimariDraw --  A Python script that processes Multiwfn spectral data and plots various spectra.
Version: v2.4.0, release date: Aug-6-2023
Developer: Kimariyb, Ryan Hsiun
Address: XiaMen University, School of Electronic Science and Engineering
KimariDraw home website: https://github.com/kimariyb/kimariDraw

Copyright © 2023 Kimariyb. All rights reserved.
Currently timeline: Aug-07-2023, 00:45:57

Do you want to use the default settings.toml configuration file? (y/n):

接着程序要求输入记录光谱数据的文本文件,输入后进入如下页面。如果开启多子图模式,则必须提供一个 multiple.txt

======= Main function page =======
1. Change the dpi of image. now dpi is: 500
2. Change the format of image. now format is: png
3. Plot and save the image now!
Please select the operation to be performed (enter the corresponding number):

在这个页面可以选择更改保存图片的 dpi、格式。选择完毕后,最后可以选择 3 保存图片。保存后会在当前文件夹下生成 figure.png 文件,如果这个文件已经存在,则生成 figure1.png、figure2.png 以此类推。

直接通过命令行命令执行

KimariDraw 除了可以直接调用主程序以外,还可以通过命令行命令执行,这样就很方便使用脚本进行批处理。KimariDraw 支持的参数可以通过 python kimaridraw.py -h 查看。

usage: KimariDraw [--help] [--set SET] [--dpi DPI] [--format FORMAT] [--version]
                  input

KimariDraw -- A Python script that processes Multiwfn spectral data and plots
various spectra.

positional arguments:
  input                 Text file containing spectral data generated by Multiwfn

optional arguments:
  --help, -h            Show this help message and exit
  --set SET, -s SET     The toml file to record the setting information, the
                        default is settings.toml in the current directory
  --dpi DPI, -d DPI     The dpi of the output graph, the default is 500
  --format FORMAT, -f FORMAT
                        The image format of the output file, the default is png
  --version, -v         Show the version information

如果在命令行里直接输入 python kimaridraw.py multiple.txt 则不会进入主程序,会直接根据参数和配置文件生成相对应的图片。

配置

使用 KimariDraw 需要提供一个 toml 文件用来配置绘图的效果。可以将其命名为为 settings.toml,这样就不需要手动选择读取的配置文件。下面是一个绘制多子图红外光谱的 settings.toml

# 光谱绘制的类型,可选 1. 单子图;2. 多子图。
# 如果需要绘制多子图,则需要先修改 PlotType,再将包含多子图的数据的 txt 文件文件名写在一个名为 multiple.txt 的文件中
PlotType = 2
# X 轴坐标的最小、最大值以及间距,例如 0, 4000, 500
xLimit = [0, 4000, 500]
# Y 轴坐标的最小、最大值以及间距,例如 0, 3000, 1000
yLimit = [0, 3000, 1000]
# 配图的标题,可以为空
Title = ""
# 设置 x 轴标签
xLabel = "Frequency (in cm^-1)"
# 设置 y 轴标签
yLabel = "Absorption (in L/mol/cm)"
# 设置全局的字体,一般为 Arial
FontFamily = "Arial"
# 设置图片的大小,也就是设置图片的长和宽。就算开启绘制多子图模式,也代表的是总的大小,不是子图的大小。
# 绘制多子图时,可以先想好每一个子图的大小,然后分别乘上行数和列数。必须为相同数据类型!
FigureSize = [4.5, 4.8]
# 曲线的颜色,可以为一个列表,优先从第一个开始选择。如果为空,则为默认的 color cycle。
# 如果开启了多子图,则每一个颜色就对应一个子图曲线的颜色。
Colors = ["black", "red", "orange", "blue"]
# 曲线的样式,可以为一个列表,优先从第一个开始选择
# 如果开启了多子图,则每一个格式就对应一个子图的格式
LineStyle = ["-", "-", "-", "-"]
# 是否显示表达式为 Y = 0 的直线,可选 0. 关闭;1. 开启
# 可以在绘制 ECD、VCD 谱时开启
ZeroLine = 0
# 选择是否显示子图的序号,只能在左上角。可选 0. 关闭;1. 开启
# 需要开启多子图才能配置
Serial = 1
# 是否显示图例,可选 0. 关闭;1. 开启
# 通常是绘制单子图的多曲线图时开启,多子图也可以开启。单开启时显示在图像的右上角。
Legend = 1
# 图例的文本,需要和 Colors 和 LineStyle 列表中元素的数量一样
LegendText = ["Acetaldehyde", "Methyl acetate", "Acetone", "N-Methylacetamide"]
# 多子图的排版,例如,[2, 2] 为 2 行 2 列的排列。推荐奇数使用 [n, 1],偶数使用 [n/2, n/2]
# 仅开启多子图才能生效
SupType = [4, 1]

配置文件和数据文件都在 example/IR 文件夹下,下面是绘制效果:

绘制效果

绘制单子图

KimariDraw 可以很方便的绘制单子图,包括单曲线图和多曲线图。下面是绘制的效果,配置文件和数据都在 example/ECDexample/UV-VIS 文件夹下。

绘制多子图

KimariDraw 除了绘制单子图以外,还可以支持绘制多子图。并且也同时支持绘制多曲线图的多子图。如果想要绘制多子图,首先必须将 toml 文件中的 PlotType 属性修改为 2,接着在当前文件夹下新建一个 multiple.txt 的文件。然后将需要绘制的子图的路径写在 txt 文件中,如下所示。

curve.txt
curve.txt
curve.txt
curve.txt
curve.txt
curve.txt
curve.txt
curve.txt
curve.txt

这个 multiple.txt 文件中内容所表示的意思是,绘制 9 个一模一样的子图,绘制的效果如下所示。 下面是绘制的效果,配置文件和数据文件都在 example/UV-VIS 文件夹下。

使用脚本批量产生光谱数据

KimariDraw 程序中自带了一个用来批量产生 Multiwfn 光谱数据的脚本。如果想要批量产生绘制光谱的数据,可以在 script 文件夹中找到这个脚本。其中 GenData.sh 为 Linux 系统下的脚本,GenData.bat 为 Windows 系统下的脚本。

GenData.sh 以及 GenData.bat 都需要一个名为 commands.txt 的文件。commands.txt 文件包含了执行 Multiwfn 生成数据所需要的命令,如果想要使用这个脚本,则必须对 Multiwfn 有一定的了解。

鸣谢

在开发 KimariDraw 时,主要使用了以下 Python 开源模组,在这里对开发这些模组的工作人员表示感谢。

  • matplotlib
  • pandas
  • proplot
  • toml

许可证

KimariDraw 基于 MIT 许可证开源。这意味着您可以自由地使用、修改和分发代码。有关更多信息,请参见 LICENSE 文件。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kimaridraw-2.5.1.tar.gz (20.2 kB view hashes)

Uploaded Source

Built Distribution

kimaridraw-2.5.1-py3-none-any.whl (16.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page