一段生成太阳系星图的python代码
时间: 2023-11-11 14:01:21 浏览: 50
这是一个简单的Python代码段,可以生成太阳系的星图。
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一个画布
fig, ax = plt.subplots(figsize=(10, 10))
# 太阳系内各行星的半径,按比例缩小
planet_radius = {
'Mercury': 0.382,
'Venus': 0.949,
'Earth': 1,
'Mars': 0.532,
'Jupiter': 11.21,
'Saturn': 9.45,
'Uranus': 4.01,
'Neptune': 3.88
}
# 以地球为中心,计算各行星的距离和角度
planet_distance = {
'Mercury': 0.39,
'Venus': 0.72,
'Mars': 1.52,
'Jupiter': 5.20,
'Saturn': 9.58,
'Uranus': 19.22,
'Neptune': 30.05
}
theta = np.linspace(0, 2*np.pi, 100)
# 绘制太阳
ax.scatter(0, 0, s=1000, c='yellow', edgecolors='black', label='Sun')
# 绘制各行星
for planet, distance in planet_distance.items():
radius = planet_radius[planet]
x = distance * np.cos(theta)
y = distance * np.sin(theta)
ax.plot(x, y, label=planet, linestyle='-', marker='o')
# 添加标签
for planet, distance in planet_distance.items():
radius = planet_radius[planet]
x = distance * np.cos(np.pi/4)
y = distance * np.sin(np.pi/4)
ax.text(x, y, planet, fontsize=12)
# 设置坐标轴和标题
ax.set_xlim(-35, 35)
ax.set_ylim(-35, 35)
ax.set_aspect('equal')
ax.set_title('Solar System')
ax.legend()
# 显示星图
plt.show()
```
该代码使用matplotlib库绘制了太阳系的星图。首先使用字典存储了各行星的半径和距离信息,然后通过循环计算各行星的位置,并绘制在图上。最后通过设置坐标轴和添加标签等操作完成了星图的绘制。该代码可以帮助我们直观地了解太阳系内各行星的大小和位置关系。
相关推荐
![](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)
![](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)