社内でLTイベントで「ピンク色のRGB値」と「好き度」に 関連があるのかを相関分析して発表しました
データ準備
24種類のピンクの好き度を「0~5」で0.5刻みで数値にしました ピンク色、何種類知ってる?デザインに使えるピンク色24選&事例11選
私の好きな・そうでもないピンクはこんな感じです
好きなピンクとRGB値にどんな関連があるのでしょうか?
import requests from bs4 import BeautifulSoup # スクレイピングでHTMLを取得 response = requests.get('https://goworkship.com/magazine/pink-palette-design/') soup = BeautifulSoup(response.content, 'html.parser') # <h4>タグの色の名前を取得 color_name = soup.find_all('h4') color_list = [] for color in color_name: # color:bs4.element.Tag str_color = color.text color_mod = str_color.replace('<h4>', '') color_mod = color_mod.replace('</h4>', '') color_list.append(color_mod) print(color_list)
['1. サーモン', '2. ウォーターメロン', '3. ファンダンゴ', '4. ベビーピンク', '5. バブルガム', '6. クリーミーピンク', '7. タフィーピンク', '8. ラベンダー', '9. アマランサス', '10. ローズピンク', '11. ブリック', '12. マゼンタ', '13. フラミンゴ', '14. カーネーション', '15. ツリアン', '16. レモネード', '17. スリーズ', '18. ウルトラピンク', '19. パンチ', '20. フレンチローズ', '21. ルビー', '22. ホットピンク', '23. フューシャ', '24. ピンク', '1. ホットピンク', '2. カーネーション', '3. ピギーピンク', '4. ベビーピンク', '5. ライトピンク', '6. チェリーブロッサム', '7. ラベンダー', '8. フューシャ', '9. チャイナピンク', '10. コンゴピンク', '11. ピンクレース']
# <p>タグのRGB値を取得 rgb = soup.find_all('p') rgb_list = [] for el in rgb: str_rgb = el.text if 'RGB\u3000' in str_rgb: rgb_mod = str_rgb.replace('<p>', '') rgb_mod = rgb_mod.replace('</p>', '') rgb_mod = rgb_mod.replace('RGB\u3000', '') # RGB+全角スペース rgb_mod = rgb_mod.replace(' ', ',') rgb_list.append(rgb_mod) print(rgb_list)
['253,171,159', '254,127,156', '223,82,134', '245,195,194', '254,91,172', '255,105,180', '249,135,197', '251,174,210', '241,156,187', '255,102,204', '251,96,127', '255,0,144', '252,163,183', '255,166,201', '222,111,161', '253,185,200', '222,49,99', '255,111,255', '236,85,120', '246,74,138', '224,17,95', '248,24,148', '255,0,255', '252,15,192']
取得した色の名前とRGB値を手動でcsvにしました(がんばれなかった)
相関分析を実行
import pandas as pd from sklearn import linear_model import matplotlib.pyplot as plt %matplotlib inline import seaborn as sons csv_data = pd.read_csv('reg_pink.csv') data = pd.DataFrame(csv_data) pd.DataFrame(csv_data)
長いので10色だけ載せています
# RedとLIKEの関連 x = data[['R']] y = data[['LIKE']] # 相関分析 df = data[[x.columns[0], y.columns[0]]] corr_mat = df.corr(method='pearson') print(corr_mat) sons.heatmap(corr_mat, vmin=-1.0, vmax=1.0, center=0, annot=True, # True:格子の中に値を表示 fmt='.1f', xticklabels=corr_mat.columns.values, yticklabels=corr_mat.columns.values ) plt.show()
# GreenとLIKEの関連 x = data[['G']] y = data[['LIKE']] # 相関分析 df = data[[x.columns[0], y.columns[0]]] corr_mat = df.corr(method='pearson') print(corr_mat) sons.heatmap(corr_mat, vmin=-1.0, vmax=1.0, center=0, annot=True, # True:格子の中に値を表示 fmt='.1f', xticklabels=corr_mat.columns.values, yticklabels=corr_mat.columns.values ) plt.show()
# BlueとLIKEの関連 x = data[['B']] y = data[['LIKE']] # 相関分析 df = data[[x.columns[0], y.columns[0]]] corr_mat = df.corr(method='pearson') print(corr_mat) sons.heatmap(corr_mat, vmin=-1.0, vmax=1.0, center=0, annot=True, # True:格子の中に値を表示 fmt='.1f', xticklabels=corr_mat.columns.values, yticklabels=corr_mat.columns.values ) plt.show()
相関分析で分かったこと
RGBいずれも高い相関はなかったですが、「Greenが低いピンクのほうが好き度が高い」感じです Greenは高いと白に近づくので、私は濃いピンクが好きそうです!