Python 可视化原子图 - 如何使用 xyz2graph 将不同的原子种类可视化为不同的颜色?

Python Visualising a Graph of Atoms - How to use xyz2graph to visualise different atomic species as different colors?

这是我想使用 xyz2graph 可视化的 .xyz 文件:

18
Atoms. File created from networkx graph by get_decomposition_calc_SRO1.py_edited_by_hand
Ga 0.0 0.0 0.0
In 1.59 0.917986928012 2.583
In 0.0 0.0 5.166
Ga 1.59 0.917986928012 7.749
Ga 0.0 0.0 10.332
Ga 1.59 0.917986928012 12.915
Ga 1.59 2.75396078403 0.0
In 3.18 3.67194771205 2.583
Ga 1.59 2.75396078403 5.166
In 3.18 3.67194771205 7.749
Ga 1.59 2.75396078403 10.332
Ga 3.18 3.67194771205 12.915
Ga 3.18 5.50792156807 0.0
In 4.77 6.42590849608 2.583
In 3.18 5.50792156807 5.166
Ga 4.77 6.42590849608 7.749

这是输出的静止图像:注意所有节点(标记为 In 和 Ga 的颜色相同)。

用于生成此图像的代码是直接从 this website 复制的:

此处显示的确切代码片段:

from xyz2graph import MolGraph, to_networkx_graph, to_plotly_figure
from plotly.offline import offline

# Create the MolGraph object
mg = MolGraph()

# Read the data from the .xyz file
mg.read_xyz('path/molecule.xyz')

# Create the Plotly figure object
fig = to_plotly_figure(mg)

# Plot the figure
offline.plot(fig)

如何改变化学结构中每个原子的颜色?

解决方案

打开包并编辑 helpers.py 中的 cpk_colors 字典以包含原子种类的颜色

为什么?

问题是在 helpers.py

中没有与铟和镓原子相关的默认颜色

如果我们检查源代码,有两个关键文件:xyz2graph.pyhelpers.py

xyz2graph.py 包含所讨论的两个原子的共价半径,但 helpers.py 在 cpk_colors 字典中没有相关颜色。

正如您正确指出的那样,没有关联颜色的元素默认为粉红色。您可以导入 cpk_colors 字典并覆盖可用颜色或为“粉红色”元素设置颜色。例如:

from xyz2graph.helpers import cpk_colors

cpk_colors['Ga'] = 'green'

结果: