pythonでグラフを作る場合、はじめはコードを書く手間ひまが掛かりますが、いったん作ればその後はデータを変更するだけでいいので、何度も繰り返すような作業ではEXCELよりも効率的です。 データベースからデータを読み込んだ後たったの7行で円グラフが完成。 グラフの装飾も以下の通り可能です。グラフ作りはEXCELよりも簡単⁈
import pandas as pd
import matplotlib.pyplot as plt
import psycopg2,sys
def SQL_readData(year) :
sql = 'SELECT result,COUNT(*) FROM sample_1 '
sql = sql + "WHERE DATE_PART('YEAR',date) = '"
sql = sql + year
sql = sql + "' GROUP BY result "
sql = sql + "ORDER BY result ;"
return sql
def execute_SQL(SQL) :
try :
conn = psycopg2.connect(database="ddddd", user="uuuuuu", password="xxxxxx", host="127.0.0.1", port="oooo")
results = pd.read_sql(SQL,conn)
return results
except psycopg2.OperationalError as e:
print('Unable to connect!\n{0}').format(e)
sys.exit(1)
finally:
if conn:
conn.close()
if __name__ == '__main__':
SQL = SQL_readData('2016')
readData = execute_SQL(SQL)
labels = ['6号艇', '5号艇', '4号艇','3号艇','2号艇','1号艇']
sizes = [readData.at[5,'count'], readData.at[4,'count'], readData.at[3,'count'], readData.at[2,'count'],readData.at[1,'count'],readData.at[0,'count']]
colors = ['#FDF2E9', '#FAE5D3', '#F5CBA7', '#F0B27A','#EB984E','#E67E22']
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', colors=colors, startangle=90)
ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.savefig('graph/foo.png')
if __name__ == '__main__':
SQL = SQL_readData('2016')
readData = execute_SQL(SQL)
explode = ( 0,0,0,0.2,0,0) ←3号艇を強調
labels = ['6号艇', '5号艇', '4号艇','3号艇','2号艇','1号艇']
sizes = [readData.at[5,'count'], readData.at[4,'count'], readData.at[3,'count'], readData.at[2,'count'],readData.at[1,'count'],readData.at[0,'count']]
colors = ['#FDF2E9', '#FAE5D3', '#F5CBA7', '#F0B27A','#EB984E','#E67E22']
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', colors=colors, startangle=90,shadow=True,pctdistance=0.8, labeldistance=1.1)
ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.rcParams['font.size'] = 11.0 ← フォントのサイズを変更
plt.title("1着の号艇の割合", loc='right') ← タイトルを追加
plt.rcParams['axes.titlesize'] = 14.0 ← タイトルのサイズ指定
plt.savefig('graph/foo.png')
2017年10月22日日曜日
【円グラフ】matplotlibを使ってデータを視覚化する
投稿日 10月 22, 2017
Tags
関連記事
登録:
コメントの投稿 (Atom)