python连接mysql数据库,筛选前五十的数,将每个航班的计划出发时间和实际出发时间之间的差异(以分钟为单位)表示为散点图
时间: 2024-01-22 15:19:33 浏览: 24
以下是连接MySQL数据库并绘制散点图的Python代码:
```python
import mysql.connector
import matplotlib.pyplot as plt
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 获取前50条航班数据
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM flights LIMIT 50")
flights = mycursor.fetchall()
# 计算每个航班的计划出发时间和实际出发时间之间的差异(以分钟为单位)
differences = []
for flight in flights:
scheduled_time = flight[2] # 第3列是计划出发时间
actual_time = flight[3] # 第4列是实际出发时间
if scheduled_time and actual_time: # 只计算有值的情况
difference = (actual_time - scheduled_time).total_seconds() / 60 # 转换为分钟
differences.append(difference)
# 绘制散点图
plt.scatter(range(len(differences)), differences)
plt.xlabel('Flight number')
plt.ylabel('Delay (minutes)')
plt.title('Flight delays')
plt.show()
```
在上述代码中,将`yourusername`、`yourpassword`和`yourdatabase`替换为您的MySQL数据库的用户名、密码和数据库名称。`flights`变量中存储了前50个航班的数据,其中第3列是计划出发时间,第4列是实际出发时间。我们计算了每个航班的计划出发时间和实际出发时间之间的差异,并将其存储在`differences`列表中。最后,我们调用Matplotlib库的`scatter`函数来绘制散点图,其中`range(len(differences))`表示横轴坐标,即航班号。