上述代码运行过慢
时间: 2023-07-07 13:13:53 浏览: 37
如果数据量很大,可能会导致绘图的时间较长。可以尝试以下方法来加速绘图:
1. 只绘制部分数据:可以通过`sample()`方法随机抽取一部分数据进行绘图,例如:`sns.histplot(data=df_trips.sample(frac=0.1), x='duration_min', kde=False, color='skyblue')`,这样可以只用数据的10%来进行绘图,加快绘图速度。
2. 关闭seaborn自带的调色板:可以通过`sns.set_palette('none')`来关闭seaborn自带的调色板,这样可以加快绘图速度。
3. 使用pandas内置的绘图函数:pandas也提供了绘制直方图的函数`hist()`,可以直接使用`df_trips['duration_min'].hist(bins=100, range=[0, 60], color='skyblue')`来绘制直方图,速度可能会更快。
综上所述,加速绘图的代码可以如下所示:
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 加载数据集
df_trips = pd.read_csv('trips.csv')
# 将起始时间和结束时间转换为datetime格式
df_trips['Start date'] = pd.to_datetime(df_trips['Start date'])
df_trips['End date'] = pd.to_datetime(df_trips['End date'])
# 计算出行时长(单位:分钟)
df_trips['duration_min'] = df_trips['Total duration (Seconds)'] / 60
# 绘制出行时长分布直方图
plt.figure(figsize=(10, 6))
sns.set_palette('none')
sns.histplot(data=df_trips.sample(frac=0.1), x='duration_min', kde=False, color='skyblue')
plt.title("Trip Duration Distribution")
plt.xlabel("Duration (min)", fontsize=12)
plt.ylabel("Count", fontsize=12)
plt.show()
```
或者:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 加载数据集
df_trips = pd.read_csv('trips.csv')
# 将起始时间和结束时间转换为datetime格式
df_trips['Start date'] = pd.to_datetime(df_trips['Start date'])
df_trips['End date'] = pd.to_datetime(df_trips['End date'])
# 计算出行时长(单位:分钟)
df_trips['duration_min'] = df_trips['Total duration (Seconds)'] / 60
# 绘制出行时长分布直方图
plt.figure(figsize=(10, 6))
df_trips['duration_min'].hist(bins=100, range=[0, 60], color='skyblue')
plt.title("Trip Duration Distribution")
plt.xlabel("Duration (min)", fontsize=12)
plt.ylabel("Count", fontsize=12)
plt.show()
```