ゼロから作るディープラーニング 3日目 1章 Python入門 Matplotlib

初心者が詰まったポイントと対策とか

 

 

Matplotlib

プロットと入ってることから想像できるようにグラフ描画のライブラリ

 

sin描画コード

import numpy as np
import matplotlib.pyplot as plt

# データの作成
x = np.arange(0, 6, 0.1) #0から6まで0.1刻みで生成
y = np.sin(x)

# グラフの描画
plt.plot(x, y)
plt.show()

 

コードを実行すると、下記エラーが出た

C:\Users\xxxx>python "C:\DEV\_python\1.6.1_sin.py"
File "C:\DEV\_python\1.6.1_sin.py", line 5
SyntaxError: Non-UTF-8 code starting with '\x83' in file C:\DEV\_python\1.6.1_sin.py on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

 

対策:PythonスクリプトエンコードをUTF8に変更して保存後、再度実行したらOK

 

 

f:id:yamekodev:20200710201846p:plain



cos描画コード

import numpy as np
import matplotlib.pyplot as plt


# データの作成
x = np.arange(0, 6, 0.1) # 0から6まで0.1刻みで生成
y1 = np.sin(x)
y2 = np.cos(x)

# グラフの描画
plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle = "--", label = "cos") # 破線で描画
plt.xlabel("x") # x軸のラベル
plt.ylabel("y") # y軸のラベル
plt.title('sin & cos')
plt.legend
plt.show()

 

f:id:yamekodev:20200710203322p:plain

 

pyplotで画像表示

 

 

下記エラーが出た

Traceback (most recent call last):
File "C:\Users\xxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\image.py", line 1460, in imread
from PIL import Image
ModuleNotFoundError: No module named 'PIL'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\DEV\_python\1.6.3_img.py", line 4, in <module>
img = imread('lena.jpg')
File "C:\Users\xxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\image.py", line 1462, in imread
raise ValueError('Only know how to handle PNG; with Pillow '
ValueError: Only know how to handle PNG; with Pillow installed, Matplotlib can handle more images

 

pngオンリーらしい

画像は例題のlena.pngを探した

http://optipng.sourceforge.net/pngtech/img/lena.html

 

pngにしたら下記エラーが出た

FileNotFoundError: [Errno 2] No such file or directory: 'lena.png'

 「./lena.png」で指定してもダメ・・・うーん

あ、コマンドプロンプトが今動いてるカレントディレクトリ「C:\Users\xxxx>」を探してるからファイルないって言われてるのかな

相対じゃなくてフルパスで指定してみる→正解

 

最終コード

import matplotlib.pyplot as plt
from matplotlib.image import imread

img = imread('C:\DEV\_python\lena.png')
plt.imshow(img)

plt.show()

 

 

f:id:yamekodev:20200710205029p:plain

 

以上で1章終了。