python画动态星空图代码
时间: 2023-03-29 10:03:46 浏览: 306
以下是 Python 画动态星空图的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 创建画布
fig = plt.figure()
# 创建子图
ax = fig.add_subplot(111)
# 设置坐标轴范围
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
# 创建点
n = 100
points = np.random.rand(n, 2) * 2 - 1
scat = ax.scatter(points[:, ], points[:, 1], s=5)
# 更新函数
def update(frame):
global points
# 随机移动点
points += np.random.rand(n, 2) * .01 - .005
# 边界处理
points = np.clip(points, -1, 1)
# 更新点的位置
scat.set_offsets(points)
return scat,
# 动画对象
ani = animation.FuncAnimation(fig, update, interval=10)
# 显示动画
plt.show()
```
希望对你有帮助!
相关问题
python画动态星空图
可以使用 Python 的 matplotlib 库来画动态星空图。下面是一个简单的实现:
```python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
# 生成一些随机的星星
num_stars = 100
stars = np.random.rand(num_stars, 2) * 2 - 1
# 绘制星空图
ax.scatter(stars[:, 0], stars[:, 1], s=1, color='white')
# 设置坐标轴范围和隐藏坐标轴
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_axis_off()
# 定义动画函数
def update(frame):
# 每帧都将星星随机移动一小步
step_size = 0.01
stars[:, 0] += np.random.randn(num_stars) * step_size
stars[:, 1] += np.random.randn(num_stars) * step_size
# 将移动后的星星重新绘制到图上
ax.clear()
ax.scatter(stars[:, 0], stars[:, 1], s=1, color='white')
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_axis_off()
# 创建动画对象
ani = animation.FuncAnimation(fig, update, frames=100, interval=50)
# 显示动画
plt.show()
```
运行代码后,会弹出一个窗口,显示动态的星空图。每帧都会将星星随机移动一小步,从而产生动画效果。可以根据自己的需要修改代码,例如修改星星的数量、颜色等。
用python画梵高星空的代码
以下是用Python绘制梵高星空的代码:
```python
import turtle
import random
# 设置画布大小和背景颜色
turtle.setup(800, 600)
turtle.bgcolor("#000000")
# 定义星星的颜色和大小
colors = ["#FFFFFF", "#FFFF00", "#FF00FF", "#00FFFF"]
sizes = [1, 2, 3]
# 定义绘制星星的函数
def draw_star(x, y):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.color(random.choice(colors))
turtle.begin_fill()
size = random.choice(sizes)
for i in range(5):
turtle.forward(size * 10)
turtle.right(144)
turtle.end_fill()
# 绘制星空
for i in range(200):
x = random.randint(-400, 400)
y = random.randint(-300, 300)
draw_star(x, y)
# 隐藏画笔
turtle.hideturtle()
# 显示绘图窗口
turtle.done()
```
阅读全文