Last updated: 2024/03/07
使用するデータ:岐阜市一年間の温度データpython05-data.zip
ダウンロード:https://tingwu.info/pylab/data/python05-data.zip
ダウンロードした後、解凍して(windowsの場合は右クリック→すべて展開)、フォルダーpython05-dataの中に、2016年9月から2017年8月までのデータがあります。
各フォルダーの中に、一つのdatファイルは一日のデータです。
これらのdatファイルはテキストファイルと同じフォーマットなので、開くにはメモ帳でもできますが、以前紹介したConTextのほうがいいです(MACの場合は別のエディターでいい)。開いたら、時刻と温度の2列のデータがあります。
import os folderMat = os.listdir('F:/Course/python/python05-data/') folderMat.sort() #sortしないと、並び順がおかしくなることがある print(folderMat) >> ['201609', '201610', '201611', '201612', '201701', '201702', '201703', '201704', '201705', '201706', '201707', '201708']
import os strRoot = 'F:/Course/python/python05-data/' folderMat = os.listdir(strRoot) folderMat.sort() strDir = strRoot+folderMat[0] fileMat = os.listdir(strDir) fileMat.sort() print(fileMat) >> ['20160901.dat', '20160902.dat', '20160903.dat', '20160904.dat', '20160905.dat', '20160906.dat', '20160907.dat', '20160908.dat', '20160909.dat', '20160910.dat', '20160911.dat', '20160912.dat', '20160913.dat', '20160914.dat', '20160915.dat', '20160916.dat', '20160917.dat', '20160918.dat', '20160919.dat', '20160920.dat', '20160921.dat', '20160922.dat', '20160923.dat', '20160924.dat', '20160925.dat', '20160926.dat', '20160927.dat', '20160928.dat', '20160929.dat', '20160930.dat']
import os strRoot = 'F:/Course/python/python05-data/' folderMat = os.listdir(strRoot) folderMat.sort() strDir = strRoot+folderMat[0] fileMat = os.listdir(strDir) fileMat.sort() for fileName in fileMat: fid = open(strDir+'/'+fileName) strLine = fid.readline() fid.close() print(fileName[0:8]+' '+strLine[0:-1]) >> 20160901 00:00, 25.6 20160902 00:00, 25.8 20160903 00:00, 26.8 20160904 00:00, 27.7 20160905 00:00, 27.0 20160906 00:00, 25.8 20160907 00:00, 26.1 20160908 00:00, 27.0 20160909 00:00, 24.0 20160910 00:00, 23.2 20160911 00:00, 24.5 20160912 00:00, 25.5 20160913 00:00, 24.5 20160914 00:00, 25.0 20160915 00:00, 24.2 20160916 00:00, 22.8 20160917 00:00, 25.1 20160918 00:00, 24.5 20160919 00:00, 23.9 20160920 00:00, 22.4 20160921 00:00, 20.5 20160922 00:00, 22.1 20160923 00:00, 22.2 20160924 00:00, 21.1 20160925 00:00, 21.6 20160926 00:00, 24.2 20160927 00:00, 24.2 20160928 00:00, 25.3 20160929 00:00, 23.8 20160930 00:00, 20.9
import matplotlib.pyplot as plt #いつもこのようにimportする import numpy as np xMat = np.arange(0, 10, 0.1) yMat = np.sin(xMat) plt.plot(xMat, yMat) plt.title('My first graph') plt.xlabel('X') plt.ylabel('Y=sin(X)') #plt.xlim([0, np.pi*2]) #アンコメントして実行してみて plt.show()
Ctrl + F6 で下図の設定画面が出る。下図のように設定して実行すれば、グラフのウィンドウが出てきていろんな操作ができる。
import matplotlib.pyplot as plt import numpy as np xMat = np.arange(0, 10, 0.1) yMat = np.sin(xMat) plt.plot(xMat, yMat) plt.title('My first graph') plt.xlabel('X') plt.ylabel('Y=sin(X)') plt.xlim([0, np.pi*2]) #plt.show() plt.savefig('F:/Course/python/05/test1.png', dpi=300)
指定のディレクトリF:/Course/python/05/にファイルtest1.pngが作られる。dpi=300を入れることで図がかなり高い解像度で作られる。
import matplotlib.pyplot as plt import numpy as np xMat = np.arange(0, 10, 0.1) yMat = np.sin(xMat) #------------------------------ plt.plot(xMat, yMat, '--') #下のコマンドと入れ替える #------------------------------ plt.title('My first graph') plt.xlabel('X') plt.ylabel('Y=sin(X)') plt.savefig('F:/Course/python/05/test2.png', dpi=300)
以下のコマンドを一行ずつ上の行と入れ替えて実行してください
plt.plot(xMat, yMat, '-.') plt.plot(xMat, yMat, ':') plt.plot(xMat, yMat, '--o') plt.plot(xMat, yMat, '-s') plt.plot(xMat, yMat, '-.^') plt.plot(xMat, yMat, ':x') plt.plot(xMat, yMat, '-sr') plt.plot(xMat, yMat, '-.vk') plt.plot(xMat, yMat, '--', lw=5)
'-', '--', '-.', ':'は線種を指定する
'o', 's', '^', 'x', 'v'はマーカーを指定する
'r', 'k'は色を指定する
よく使う色:
r:赤(red)
b:青(blue)
k:黒(black)
w:白(while)
y:黄(yellow)
g:緑(green)
m:紫(magenta)
lwで線の太さを指定する
[データ] 岐阜市一年間の温度データpython05-dataを使用する(作った図のスクリーンショットで提出してください)
1.一年間の以下の各時間帯の平均温度を求めて、その変化を下のようなグラフで表す
[00:00~01:00), [01:00~02:00), ... , [22:00~23:00), [23:00~24:00)
2.一年間各月の平均温度、最高温度、最低温度を求めて、それぞれの変化を一つのグラフで表す。(凡例の作り方は自分で調べてみてください)