def draw_view(): global x01 global y01 global z01 t = ts_dict['t_of_now'] filepath = ts_dict['filepath'] with open(filepath + str(t) + ".txt", 'r', encoding='utf-8') as file1: all = file1.read() coord_x = all[re.search('X', all).end() + 2:re.search('Y', all).start() - 24] coord_x = coord_x.split(',') coord_y = all[re.search('Y', all).end() + 2:re.search('Z', all).start() - 24] coord_y = coord_y.split(',') coord_z = all[re.search('Z', all).end() + 2:] coord_z = coord_z.split(',') num01 = len(coord_x) x01 = coord_x y01 = coord_y z01 = coord_z for i in range(num01): x = x01[i] y = y01[i] z = z01[i] ax.scatter3D(x, y, z) canvas.draw()
时间: 2023-05-14 21:04:48 浏览: 67
这是一个Python函数,它的作用是读取一个文件中的坐标数据,并在一个三维坐标系中绘制出来。函数中使用了全局变量x01、y01和z01来存储坐标数据,使用了matplotlib库中的scatter3D函数来绘制散点图。canvas.draw()函数用于显示绘制结果。
相关问题
[Errno 22] Invalid argument: '\x01\reaction_0.png'
出现"[Errno 22] Invalid argument: '\x01\reaction_0.png'"的错误是因为文件路径中包含了无效的字符。在Windows系统中,反斜杠(\)被用作路径分隔符,但在字符串中表示特殊字符的转义字符。因此,\r 被解释为回车符(carriage return),\n 被解释为换行符(newline)。
为了解决这个问题,您可以使用原始字符串(raw string)来表示文件路径,或者使用正斜杠(/)作为路径分隔符。以下是一个修正后的示例代码:
```python
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import AllChem
# 读取数据文件
data = pd.read_csv('input.csv')
# 获取rxn_smiles列的数据
rxn_smiles = data['rxn_smiles']
# 遍历每个 rxn_smiles 字符串并保存图片
for i, smi in enumerate(rxn_smiles):
print(smi)
rxn = Chem.AllChem.ReactionFromSmarts(smi)
if rxn is not None:
# 绘制反应结构
img = Draw.ReactionToImage(rxn)
img.show()
img.save(fr'reaction_{i}.png')
else:
print("Failed to parse rxn_smiles:", smi)
```
在上述代码中,我们使用原始字符串(raw string)前缀(`r`)来表示文件路径,确保转义字符不会被解释。另外,我们使用正斜杠(`/`)作为路径分隔符,以避免与转义字符冲突。
请注意,在运行代码之前,请确保文件路径有效,并且您有写入文件的权限。
Error load module DT_001_X01_P01:attempted relative import with no known parent package
这个错误通常是在 Python 中使用相对导入时出现的。相对导入是指从当前模块的相对位置导入其他模块。通常,相对导入用于在同一包中的模块之间进行导入,但在这种情况下,Python 无法确定父级模块的位置。
要解决这个问题,你可以使用绝对导入或将模块放在正确的包中。如果你使用的是 Python 3,应该优先使用绝对导入,即使用完整的包名来导入模块。例如,如果你想从包 `mypackage` 中导入模块 `mymodule`,可以这样写:
```
from mypackage import mymodule
```
如果你使用 Python 2,则需要使用 `__init__.py` 文件来指定包的位置。确保你的包中的每个目录都包含一个名为 `__init__.py` 的空文件。这将告诉 Python 这是一个包,并且可以在其中找到其他模块。