👋

PythonでプロットしたグラフをGoogle ColaboratoryからGoogle driveにアップロードする方法

2020/12/23に公開

記事移行がてら再現もできたので公開します。元々Qiitaに挙げていたものです。
https://qiita.com/YaCpotato/items/a0c9bf8ae7a8586c1e47

sklearnの関数で取得できるUCI Machine Learning Repositoryのwineデータセットを利用します

手順

  1. ColaboratoryにGoogle Driveのアクセス権限を与える
  2. Google Driveにファイルの出力をする
    手順2までにはpairplot用のDataFrameを定義しておきましょう

詳しく

1. wineデータセットの読み込み

学習に使用することになりそうですし、DataFrameを学習データ(X_train)で作成するのでデータ分割もしています

from sklearn.datasets import load_wine
wine_dataset = load_wine()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
        wine_dataset['data'], wine_dataset['target'],
        test_size=0.3, random_state=0)

2. DataFrameの作成

wine_df = pd.DataFrame(X_train, columns=wine_dataset.feature_names)
wine_df['species'] = y_train
wine_df.head()

出力結果はこうなります
image.png

3. ColaboratoryにGoogle Driveのアクセス権限を与える

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

リンクと入力欄が出力されます。そのリンクを踏んでGoogleアカウントでログインして出てきた文字列をコピーして、Google Colaboratoryに戻ってきて入力欄にペーストしてエンター

4. seabornでpairplotを作成し、pngとして保存しておく

import seaborn as sns
sns.pairplot(wine_df, hue='species').savefig('wine_pairplot_hue.png')

このままだとColaboratoryのローカル(Google DriveのColab Notebooksからも見れない)にあるので、Google Driveへのアップロードが必要になります。

5. Google Driveに出力

upload_file_2 = drive.CreateFile()
upload_file_2.SetContentFile("wine_pairplot_hue.png")
upload_file_2.Upload()

6. 結果

image.png

ちゃんと登録できてます。ちなみにワインデータセットくらい特徴量があると画質の影響で文字が見えなくなるので他の対処が必要そうです。(Colaboratory上でもプロットされます。こちらはズーム可能)

image.png

以上です

Discussion