BETA

Python 好きなピンクを相関分析してみる

投稿日:2019-12-10
最終更新:2019-12-10

社内で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は高いと白に近づくので、私は濃いピンクが好きそうです!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

よく一緒に読まれる記事

2件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
12/10 23:32

ソース載せて頂いてありがとうございます!参考になります^^ 自分の好きなものをテーマに何かやってみるのもいいですね! 相関分析が自己分析にもなっているのが面白かったです笑

12/11 23:34

@kand さん ブログ見てくださりありがとうございます。身近なことを分析すると楽しいです! 何か分析したら(分析でなくても)ぜひ教えてください