1.実現したいこと
matplotlibでx軸がvegetable、y軸がsaltの値を「スコアラベル(1~4)」ごとに散布図で表示したい。
2.ソースコード
from google.colab import auth
from google.auth import default
import gspread
import numpy as np
auth.authenticate_user()
creds, _ = default()
gc = gspread.authorize(creds)
worksheet = gc.open_by_key('任意のスプレッドシートキー').sheet1
import pandas as pd
rows = worksheet.get_all_values()
header = rows.pop(0)
df = pd.DataFrame.from_records(rows, columns=header)#indexの''は自由に変更
df = df.where(df != '')
#matplotlibで可視化
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(font='IPAexGothic')
x = np.linspace(min(df["Vegetables[g]"].astype(int)), max(df["Vegetables[g]"].astype(int)))
y = np.linspace(min(df["Salt[g]"].astype(float)), max(df["Salt[g]"].astype(float)))#範囲指定
if(df["Score(1:worst 2:bad 3:good 4:best)"].astype(int) == 4).all():
plt.scatter(df["Vegetables[g]"].astype(int), df["Salt[g]"].astype(float),s=10,color = "red")
elif(df["Score(1:worst 2:bad 3:good 4:best)"].astype(int) == 3).all():
plt.scatter(df["Vegetables[g]"].astype(int), df["Salt[g]"].astype(float),s=10,color = "blue")
elif(df["Score(1:worst 2:bad 3:good 4:best)"].astype(int) == 2).all():
plt.scatter(df["Vegetables[g]"].astype(int), df["Salt[g]"].astype(float),s=10,color = "yellow")
elif(df["Score(1:worst 2:bad 3:good 4:best)"].astype(int) == 1).all():
plt.scatter(df["Vegetables[g]"].astype(int), df["Salt[g]"].astype(float),s=10,color = "green")
plt.title("データの確認・可視化")
plt.xlabel('vegetable')
plt.ylabel('salt')
plt.show()
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/10 07:54