説明
データを受けてヒストグラムとパイチャートを出力
一次元データのみ対応。
dist_disp.py
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt def make_pie_data(data): pie_data = dict() for i in data: pie_data[i] = data.count(i) return pie_data def display_dist(data): # ヒストグラム生成 plt.subplot(2, 1, 1) plt.hist(data, bins=50) plt.title(u'Input data histgram') # パイチャート生成 pie_data = make_pie_data(data) plt.subplot(2, 1, 2) plt.pie(list(pie_data.values()), labels=list(pie_data.keys())) plt.title(u'Input data pie chart') # タイトルの被りを防ぐ plt.tight_layout() plt.show() def get_data(): data = list() while True: try: line = float(input().strip()) data.append(line) except EOFError: break return data if __name__ == '__main__': data = get_data() if data: display_dist(data)
使い方例
$ (seq 1 10;echo 1; echo 3) | python ./disp_dist.py