python绘制元素周期表
时间: 2023-07-25 11:24:18 浏览: 156
绘制元素周期表可以使用Python中的Matplotlib库来实现。下面是一个简单的实现步骤:
1. 导入Matplotlib库和NumPy库。
```python
import matplotlib.pyplot as plt
import numpy as np
```
2. 创建一个2D数组,表示元素周期表的排列方式。其中,每个元素的原子序数和符号都要对应到相应的位置。
```python
table = np.array([
['', 'H', '', '', '', '', '', 'He'],
['Li', 'Be', '', '', '', '', '', 'B', 'C', 'N', 'O', 'F', 'Ne'],
['Na', 'Mg', '', '', '', '', '', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar'],
['K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr'],
['Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe'],
['Cs', 'Ba', 'La-Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn'],
['Fr', 'Ra', 'Ac-Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og']
])
```
3. 设定每个元素的尺寸和间距。
```python
cell_width = 2.5
cell_height = 1.5
cell_padding = 0.1
```
4. 根据数组中每个元素的位置,绘制相应的矩形,并添加文本。
```python
fig, ax = plt.subplots(figsize=(20, 10))
for y in range(table.shape[0]):
for x in range(table.shape[1]):
symbol = table[y, x]
if symbol:
rect = plt.Rectangle((x * cell_width, -y * cell_height), cell_width, cell_height, fill=False, lw=2)
ax.add_patch(rect)
plt.text(x * cell_width + cell_width / 2, -y * cell_height + cell_height / 2, symbol, ha='center', va='center')
plt.xlim(0, table.shape[1] * cell_width)
plt.ylim(-table.shape[0] * cell_height, 0)
plt.axis('off')
plt.show()
```
运行以上代码,即可绘制出一个简单的元素周期表。如果需要添加更多的元素属性或样式,可以通过修改代码来实现。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)