パイクラおじさんの日記

MinecraftでPythonを勉強するおじさんの日記です。

グリッドを表示

plotnpy.pyで引数でグリッドを表示できるようにした。

# coding: utf-8

import numpy as np
import matplotlib.pyplot as plot
import sys

NPY_DIR = "/Users/pycra/Desktop/NPY_DATA"

# ここからスタート

if len(sys.argv) < 2:
    print("plotnpy.py npyfilename [(5x5|10x10)]")
    exit(-1)

grid = 0
if len(sys.argv) == 3:
    if sys.argv[2] == "5x5":
        grid = 5
    elif sys.argv[2] == "10x10":
        grid = 10

print("grid=", grid)

array = np.load(NPY_DIR+"/"+sys.argv[1])

if grid != 0:
    gridValue = array.max() + 10
    (yshp, xshp) = array.shape
    if yshp >= 1000:
        gridWidth = 5
    else:
        gridWidth = 1
    for y in range(0, yshp, yshp // grid):
        array[y:y+gridWidth, :] = gridValue
    for x in range(0, xshp, xshp // grid):
        array[:, x:x+gridWidth] = gridValue

plot.imshow(array)
plot.colorbar()
plot.show()

試してみた。

$ python plotnpy.py npydata-5340-22.npy 10x10

f:id:pycra:20170923033218p:plain

$ python plotnpy.py npy_5x5-5340-22-12.npy 5x5

f:id:pycra:20170923033110p:plain

Pythonメモ

//で割った結果を小数点以下を切り捨てて整数を返す。