生成代码:用python画地铁线路动态图
时间: 2023-12-17 07:02:14 浏览: 137
以下是一个基本的代码示例,它可以用Python和matplotlib库生成地铁线路的动态图。这里使用的是北京地铁的数据,具体包括地铁线路的站点、站点之间的距离、站点坐标等信息。代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 读取地铁线路数据
subway_data = pd.read_csv('subway_data.csv', encoding='gbk')
# 绘制地铁线路底图
fig, ax = plt.subplots(figsize=(10, 8))
ax.set_aspect('equal')
ax.set_facecolor('black')
# 绘制地铁线路
for line, color in zip(subway_data.groupby('line_name'), subway_data['line_color'].unique()):
line_stations = line[1].sort_values('station_order')
ax.plot(line_stations['x'], line_stations['y'], color=color, linewidth=3)
# 绘制地铁站点
for station in subway_data[['station_name', 'x', 'y']].drop_duplicates().values:
ax.scatter(station[1], station[2], color='white', s=50)
ax.annotate(station[0], xy=(station[1], station[2]), xytext=(-10, 10),
textcoords='offset points', color='white')
# 列车运行效果
train, = ax.plot([], [], 'o', color='red', markersize=15)
# 更新列车位置
def update(frame):
train.set_data(subway_data.loc[frame]['x'], subway_data.loc[frame]['y'])
return train,
# 创建动态图像
ani = animation.FuncAnimation(fig, update, frames=subway_data.shape[0], interval=100)
# 保存为GIF动图
ani.save('subway.gif', writer='PillowWriter', fps=30)
```
这个代码中,首先读取了地铁线路数据,然后使用matplotlib库绘制了地铁线路的底图,包括线路路径和站点坐标等信息。接着,使用动态效果来表示列车在地铁线路上的运行情况,最后将生成的动态图像保存为GIF图像。
阅读全文