0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

レンタルバイク可視化

Posted at

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

CSVファイルを読み込む

train_data = pd.read_csv('hour_train.csv')

temp, atemp, hum, windspeed, casual, registered, cntの相関行列を計算

corr_matrix = train_data[['temp', 'atemp', 'hum', 'windspeed', 'casual', 'registered', 'cnt']].corr()

ヒートマップを作成

plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f')

ヒートマップのタイトルを設定

plt.title('Correlation Heatmap of Bike Sharing Data')

ヒートマップを表示

plt.show()

temp atempが弱い正の相関

humが弱い負の相関

カテゴリカルデータを指定

categoricals = ['season', 'yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'weathersit']

グラフを描画

plt.figure(figsize=(14, 10))

for i, category in enumerate(categoricals, 1):
plt.subplot(2, 4, i)

# カテゴリごとに'casual', 'registered', 'cnt'を合計
category_data = train_data.groupby(category)[['casual', 'registered', 'cnt']].sum().reset_index()

# 棒グラフを描画
category_data.plot(x=category, kind='bar', stacked=False, ax=plt.gca())

# グラフのタイトルとラベルを設定
plt.title(f'{category} vs Bike Usage')
plt.xlabel(category)
plt.ylabel('Total Number of Users')

グラフのレイアウトを調整

plt.tight_layout()

グラフを表示

plt.show()

seasonは夏秋が多い

yrは年がたつにつれて、増えている。バイクレンタルが普及している。

mnthは夏と冬が増えている

hrは朝と夕方が多い。通勤に使っている人がいる。

holidayは平日が多い。が多い。

humが弱い負の相関

temp atempが弱い正の相関

humが弱い負の相関

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

CSVファイルを読み込む

train_data = pd.read_csv('hour_train.csv')

各データの統計量を計算

stats = {
'Casual': {
'mean': train_data['casual'].mean(),
'median': train_data['casual'].median(),
'std': train_data['casual'].std()
},
'Registered': {
'mean': train_data['registered'].mean(),
'median': train_data['registered'].median(),
'std': train_data['registered'].std()
},
'Total': {
'mean': train_data['cnt'].mean(),
'median': train_data['cnt'].median(),
'std': train_data['cnt'].std()
}
}

ヒストグラムの描画

plt.figure(figsize=(14, 10))

plt.subplot(2, 2, 1)
plt.hist(train_data['casual'], bins=30, alpha=0.5, label='Casual', color='blue')
plt.hist(train_data['registered'], bins=30, alpha=0.5, label='Registered', color='orange')
plt.hist(train_data['cnt'], bins=30, alpha=0.5, label='Total', color='green')
plt.title('Distribution of Casual, Registered, and Total Users')
plt.xlabel('Number of Users')
plt.ylabel('Frequency')
plt.legend(loc='upper right')

統計量の棒グラフを描画

plt.subplot(2, 2, 2)
stats_df = pd.DataFrame(stats).T
stats_df.plot(kind='bar', ax=plt.gca(), color=['blue', 'orange', 'green'], edgecolor='black')
plt.title('Statistics of Casual, Registered, and Total Users')
plt.xlabel('Category')
plt.ylabel('Value')
plt.xticks(rotation=0)
plt.legend(['Mean', 'Median', 'Standard Deviation'])

グラフのレイアウトを調整

plt.tight_layout()

グラフを表示

plt.show()

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?