覚え書きブログ

Pythonの覚え書き(よく使い方を忘れる関数のメモ)

  • 複数のグラフのプロット
fig, figInds = plt.subplots(nrows=2, ncols=2)
figInds[0,0].plot(xxx)
figInds[0,0].set_title('xxx')

figInds[0,1].plot(yyy)
figInds[0,1].set_title('yyy')
	
figInds[1,0].plot(zzz)
figInds[1,0].set_title('zzz')

figInds[1,1].plot(www)
figInds[1,1].set_title('www')

plt.savefig('path')
plt.show()   
  • ファイル一覧の取得
>>> import os
>>> files = os.listdir('label_2')
>>> for file in files:
>>>      print(file)
000000.txt
000001.txt
...
007478.txt
007480.txt
  • パスの結合
>>> import os
>>> filePath = os.path.join('label_2',files[0])
>>> print(filePath)
'label_2\\000000.txt'
  • csvファイルの読み込み(区切り文字がスペースで、ヘッダーが無い場合)
>>> df = pd.read_csv(filePath,header=None, sep=' ')
>>> df
>>> df
         0    1   2      3       4       5       6       7     8     9   \
0     Truck  0.0   0  -1.57  599.41  156.40  629.75  189.25  2.85  2.63
1       Car  0.0   0   1.85  387.63  181.54  423.81  203.12  1.67  1.87
2   Cyclist  0.0   3  -1.65  676.60  163.95  688.98  193.93  1.86  0.60
3  DontCare -1.0  -1 -10.00  503.89  169.71  590.61  190.13 -1.00 -1.00
4  DontCare -1.0  -1 -10.00  511.35  174.96  527.81  187.45 -1.00 -1.00
5  DontCare -1.0  -1 -10.00  532.37  176.35  542.68  185.27 -1.00 -1.00
6  DontCare -1.0  -1 -10.00  559.62  175.83  575.40  183.15 -1.00 -1.00

      10       11       12       13     14
0  12.34     0.47     1.49    69.44  -1.56
1   3.69   -16.53     2.39    58.49   1.57
2   2.02     4.59     1.32    45.84  -1.55
3  -1.00 -1000.00 -1000.00 -1000.00 -10.00
4  -1.00 -1000.00 -1000.00 -1000.00 -10.00
5  -1.00 -1000.00 -1000.00 -1000.00 -10.00
6  -1.00 -1000.00 -1000.00 -1000.00 -10.00
>>>
# -*- coding: utf-8 -*-
  • Python2系でdumpしたファイルを3系でloadする

「UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 7: ordinal not in range(128)」
のようなエラーがでる場合は、encodingを指定する

>>> import pickle
>>> with open("anchors.pkl","rb") as fp:
     anchors_ = pickle.load(fp,encoding='latin1')
     anchors2_ = pickle.load(fp,encoding='latin1')
  • 長方形のプロット
import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig = plt.figure()
ax = plt.axes()

r = patches.Rectangle(xy=(3,4), width=30, height=40, ec='#ff0000', fill=False)
ax.add_patch(r)

plt.axis('scaled')
ax.set_aspect('equal')

plt.show()