2018年9月14日金曜日

開発環境

  • macOS High Sierra - Apple
  • Emacs (Text Editor)
  • Python 3.7 (プログラミング言語)

Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の2章(データをグラフで可視化する)、2.6(プログラミングチャレンジ)、問題2-4(支出を可視化する)を取り組んでみる。

コード(Emacs)

Python 3

#!/usr/bin/env python3
import matplotlib.pyplot as plt


def create_bar_char(data, labels):
    num_bars = len(data)
    positions = range(1, num_bars + 1)
    plt.barh(positions, data, align='center')
    plt.yticks(positions, labels)
    plt.xlabel('Amount')
    plt.ylabel('Categories')
    plt.title('Weekly expenditures')
    plt.grid()
    plt.savefig('sample4.svg')


if __name__ == '__main__':
    try:
        n = int(input('Enter the number of categories: '))
    except ValueError as err:
        print(err)
    else:
        categories = []
        expenditures = []
        for _ in range(n):
            category = input('Enter category: ')
            try:
                expenditure = int(input('Expenditure: '))
            except ValueError as err:
                print(err)
            else:
                categories.append(category)
                expenditures.append(expenditure)
        create_bar_char(expenditures, categories)

入出力結果(Terminal, Jupyter(IPython))

$ ./sample4.py < input.txt
Enter the number of categories: Enter category: Expenditure: Enter category: Expenditure: Enter category: Expenditure: Enter category: Expenditure: $ cat input.txt
4
Food
70
Transportation
35
Entertainment
30
Phone/Internet
30
$ 

0 コメント:

コメントを投稿