じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

真実の焼肉食べ放題メニューを作る。

概要

2016年も残り数日。2017年には社会という荒波に出る。なんとなく卒業研究も上手く行かないそんな日々を変えたいものだ。そこで授業の最後に忘年会を兼ねて焼肉の食べ放題に行くことになった。しかし、楽しいはずの焼肉はメニューが均等に並び我々にあらゆる選択を迫ってくる。焼肉の食べ放題で重要なのは…
そう、元を取ることである。貧乏性の学生は食べ放題のメニューに値段が記載されていないことに激怒した。しかし、仕入れ値を知ることはできないので食べ放題じゃない単品メニューから値段を紐付けたい このメニューを
焼肉の牛太 本陣 ヨドバシ博多店 メニュー:単品 - ぐるなび 以下のリストにする。

 メニューを作る

import pandas as pd

menu = ["本陣カルビ","中落ちカルビ","サガリ","厚切りカルビステーキ","塩豚カルビ","塩鶏モモ","塩センマイ" ,"塩レバー","塩トントロ","塩豚タン",\
"塩ヤゲンナンコツ","塩しま腸","塩サイコロトンテキ","味噌豚カルビ","味噌鶏モモ","味噌センマイ","味噌レバー","味噌ヤゲンナンコツ", \
    "味噌しま腸","ピリ辛豚カルビ","ピリ辛鶏モモ","ピリ辛センマイ","ピリ辛レバー","ピリ辛ヤゲンナンコツ","ピリ辛しま腸","ネギ塩豚タン",\
    "ウインナー","にんにく焼き","キャベツ","ピーマン","たまねぎ","トウモロコシ","カボチャ","エリンギ","焼野菜盛り合わせ","サンチュ","本陣サラダ","チョレギサラダ",\
    "ツナタマサラダ","ナムル","キムチ","カクテキ","キムチ2種盛","もやしナムル","ワカメスープ","たまごスープ","牛すじ煮込み","韓国のり","ごはん(小)","ごはん(中)",\
    "ごはん(大)","ビビンバ","りんごシャーベット","きなこバニラ","バニラアイス","チョコバニラ","フルーツポンチ","ストロベリーアイス",
    ]

price = [518,734,734,834,410,410,518,518,518,518,\
        572,572,518,464,464,572,572,564,\
        572,464,464,572,572,464,572,572,\
        410,302,248,248,248,248,248,248,464,302,518,518,\
        580,302,302,302,410,302,410,410,410,194,216,216,\
        216,734,248,248,248,248,248,248,
        ]
        
        
print(len(menu))

menu_df = pd.DataFrame({
  "品名":menu,
  "値段":price,
  })

print(menu_df)

値段に対応したメニューが出力された

     値段       品名  
0   518       本陣カルビ  
1   734      中落ちカルビ  
2   734         サガリ  
3   834  厚切りカルビステーキ  
4   410       塩豚カルビ  
5   410        塩鶏モモ  
6   518       塩センマイ  
7   518        塩レバー  
8   518       塩トントロ  
9   518        塩豚タン  
10  572    塩ヤゲンナンコツ  
11  572        塩しま腸  
12  518   塩サイコロトンテキ  
13  464      味噌豚カルビ  
14  464       味噌鶏モモ  
15  572      味噌センマイ  
16  572       味噌レバー  
17  564   味噌ヤゲンナンコツ  
18  572       味噌しま腸  
19  464     ピリ辛豚カルビ  
20  464      ピリ辛鶏モモ  
21  572     ピリ辛センマイ  
22  572      ピリ辛レバー  
23  464  ピリ辛ヤゲンナンコツ  
24  572      ピリ辛しま腸  
25  572      ネギ塩豚タン  
26  410       ウインナー  
27  302      にんにく焼き  
28  248        キャベツ  
29  248        ピーマン  
30  248        たまねぎ  
31  248      トウモロコシ  
32  248        カボチャ  
33  248        エリンギ  
34  464    焼野菜盛り合わせ  
35  302        サンチュ  
36  518       本陣サラダ  
37  518     チョレギサラダ  
38  580     ツナタマサラダ  
39  302         ナムル  
40  302         キムチ  
41  302        カクテキ  
42  410      キムチ2種盛  
43  302      もやしナムル  
44  410      ワカメスープ  
45  410      たまごスープ  
46  410      牛すじ煮込み  
47  194        韓国のり  
48  216      ごはん(小)  
49  216      ごはん(中)  
50  216      ごはん(大)  
51  734        ビビンバ  
52  248   りんごシャーベット  
53  248      きなこバニラ  
54  248      バニラアイス  
55  248      チョコバニラ  
56  248     フルーツポンチ  
57  248   ストロベリーアイス  

しかし、ゆるふわな学生なのでこういった数字を多く出力されても困る。
そして、突如「あ、値段を重みに使ってワードクラウド作ろ」とか思い始めたのだ。
アイドルのブログからword_cloudを生成するオタク気持ち悪い() - じゃあ、おうちで学べる

ワードクラウド

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np,pandas as pd
from wordcloud import WordCloud



def new_menu():
    menu = ["本陣カルビ","中落ちカルビ","サガリ","厚切りカルビステーキ","塩豚カルビ","塩鶏モモ","塩センマイ" ,"塩レバー","塩トントロ","塩豚タン",\
"塩ヤゲンナンコツ","塩しま腸","塩サイコロトンテキ","味噌豚カルビ","味噌鶏モモ","味噌センマイ","味噌レバー","味噌ヤゲンナンコツ", \
    "味噌しま腸","ピリ辛豚カルビ","ピリ辛鶏モモ","ピリ辛センマイ","ピリ辛レバー","ピリ辛ヤゲンナンコツ","ピリ辛しま腸","ネギ塩豚タン",\
    "ウインナー","にんにく焼き","キャベツ","ピーマン","たまねぎ","トウモロコシ","カボチャ","エリンギ","焼野菜盛り合わせ","サンチュ","本陣サラダ","チョレギサラダ",\
    "ツナタマサラダ","ナムル","キムチ","カクテキ","キムチ2種盛","もやしナムル","ワカメスープ","たまごスープ","牛すじ煮込み","韓国のり","ごはん(小)","ごはん(中)",\
    "ごはん(大)","ビビンバ","りんごシャーベット","きなこバニラ","バニラアイス","チョコバニラ","フルーツポンチ","ストロベリーアイス",
    ]

    price = [518,734,734,834,410,410,518,518,518,518,\
        572,572,518,464,464,572,572,564,\
        572,464,464,572,572,464,572,572,\
        410,302,248,248,248,248,248,248,464,302,518,518,\
        580,302,302,302,410,302,410,410,410,194,216,216,\
        216,734,248,248,248,248,248,248,
        ]
        
    many_menu = []    
    for n in range(len(menu)):
        for a in range(price[n]):
            many_menu.append(menu[n])
    return many_menu

def create_wordcloud(text):
    fpath = "/usr/share/fonts/truetype/takao-mincho/TakaoExMincho.ttf"
    wordcloud = WordCloud(background_color="black",font_path= fpath ,width=900, height=500).generate(text)

    plt.figure(figsize=(15,12))
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.savefig("graph.png")
    plt.show()

if __name__ == '__main__':
    menu_list = new_menu()
    print(" ".join(menu_list))
    create_wordcloud(" ".join(menu_list))

出力

f:id:syu-m-5151:20161220112750p:plain

最後に

これを使えば値段の高いものから注文しやすくなるが
食べ放題は値段ではなく満足度にお金を払え!!!

参照

Examples — wordcloud 0.1 documentation