欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[ Python ] matplotlib

程序员文章站 2022-03-09 19:43:50
...
# -*- coding: utf-8 -*-

import unittest

class TestClass1(unittest.TestCase):

    @unittest.skip("core.ok")
    def test_tuple(self):
        data = (11,22,33)
        print(data)
        x,y,z = data
        print(x,y,z)

    @unittest.skip("matplotlib.screen")
    def test_scrap_screen(self):
        from PIL import Image, ImageGrab
        import numpy as np
        from matplotlib import pyplot as plt
        sim = ImageGrab.grab()
        w,h = sim.size
        del(sim)
        dpi = plt.rcParams['figure.dpi']
        print("screen size: %d, %d" % (w, h))
        print("screen inch: %2.2f, %2.2f" %(w/dpi, h/dpi))
        djx = np.sqrt(w*w + h*h)
        print("screen djx = %d" % djx)
        print("screen dpi = %f" % (djx/15.4))
        print("screen size= %d, %d" % (w/221, h/221))

    # @unittest.skip("xxxyyyxxxyyyyy")
    def test_full_screen(self):
        from matplotlib import pyplot as plt
        from PIL import Image
        img_name = "/Users/jacobzhao/Downloads/sunyunzhu1.jpeg"
        img = Image.open(img_name)
        print("dip = %d" % plt.rcParams['figure.dpi'])
        plt.figure()
        plt.axis('off')
        ax = plt.gca()
        ax.spines['top'].set_visible(False)
        leg = plt.legend()
        leg.get_frame().set_linewidth(0.0)
        plt.subplots_adjust(hspace=0, wspace=0)
        plt.imshow(img)
        plt.show()

if __name__ == '__main__':
    unittest.main()
    # suite = unittest.TestSuite()
    # suite.addTest(TestClass1('test_scrap_screen'))
    # runner = unittest.TextTestResult()
    # runner.run(suite)

  

 

# -*- coding: utf-8 -*-
from functools import reduce

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

class MyImage(object):

    def __init__(self, filepath):
        self.filepath = filepath
        self.imgfile = Image.open(filepath)
        if self.imgfile.mode != 'RGB':
            self.imgfile = self.imgfile.convert("RGB")
        self.imgdata = np.array(self.imgfile)
        self.info = {
            "mode": self.imgfile.mode,
            "shape":self.imgdata.shape
        }

    def showImg(self, title='NO-Title'):
        plt.figure(title)
        plt.imshow(self.imgdata)
        plt.axis('off')
        plt.show()

    def printInfo(self):
        print(self.info)


class MyImage2(object):

    def __init__(self, filepath1, filepath2):
        self.filepath1 = filepath1
        self.filepath2 = filepath2
        self.imgfile1 = Image.open(filepath1)
        self.imgfile2 = Image.open(filepath2)
        if self.imgfile1.mode != 'RGB':
            self.imgfile1 = self.imgfile1.convert("RGB")
        if self.imgfile2.mode != 'RGB':
            self.imgfile2 = self.imgfile2.convert("RGB")
        self.imgdata1 = np.array(self.imgfile1)
        self.imgdata2 = np.array(self.imgfile2)
        self.info1 = {
            "mode": self.imgfile1.mode,
            "shape":self.imgdata1.shape
        }
        self.info2 = {
            "mode": self.imgfile2.mode,
            "shape":self.imgdata2.shape
        }


    def showImg(self, title1='Image-1', title2='Image-2'):
        fig = plt.figure(figsize=(10, 5))
        ax1 = fig.add_subplot(1, 2, 1)
        ax1.imshow(self.imgdata1)
        ax1.axis('off')
        plt.title(title1)
        ax2 = fig.add_subplot(1, 2, 2)
        ax2.imshow(self.imgdata2)
        ax2.axis('off')
        plt.title(title2)
        # plt.suptitle("Image-Test")
        plt.show()

    def printInfo(self):
        print(self.info1)
        print(self.info2)



class MyImageN(object):

    def __init__(self, filepaths):
        self.size = len(filepaths)
        pos = list(range(self.size))
        self.filepaths = filepaths
        self.imgfiles = []
        self.imgdatas = []
        self.imginfos = []
        for index, filepath in zip(pos, filepaths):
            info={'title':'img-'+str(index)}
            self.imgfiles.append(Image.open(filepaths[index]))
            info['mode'] = self.imgfiles[index].mode
            if self.imgfiles[index].mode != 'RGB':
                self.imgfiles[index] = self.imgfiles[index].convert('RGB')
            self.imgdatas.append(np.array(self.imgfiles[index]))
            info['shape'] = self.imgdatas[index].shape
            self.imginfos.append(info)

    def showImg(self, titles = None):
        fig = plt.figure(figsize=(4*self.size, 4))
        for index in range(self.size):
            ax = fig.add_subplot(1, self.size, index + 1)
            ax.imshow(self.imgdatas[index])
            ax.axis('off')
            plt.title("Image-"+str(index))
        # plt.suptitle("Image-Test")
        plt.show()

    def printInfos(self):
        for index in range(self.size):
            print(index+1, '->', self.imginfos[index])

    def processImage(self, index, func):
        curr_data = self.imgdatas[index]
        self.imgdatas[index] = func(self.imgfiles[index])

def picGray(imgfile):
    return imgfile.convert('L')


if __name__ == '__main__':
    syz = [
        r"/Users/jacobzhao/Downloads/sunyunzhu1.jpeg",
        r"/Users/jacobzhao/Downloads/sunyunzhu2.png",
        # r"/Users/jacobzhao/Downloads/sunyunzhu3.png",
    ]
    # MyImage(syz[0]).showImg()
    # MyImage(syz[1]).showImg()
    syzImgs = MyImageN(syz)
    # syzImgs.showImg()
    syzImgs.processImage(0, picGray)
    syzImgs.processImage(1, picGray)
    # syzImgs.processImage(2, picGray)
    syzImgs.printInfos()
    syzImgs.showImg()

  

 

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(8, 4))
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,1,2)
ax3.plot(np.random.randn(50).cumsum(), 'k--')
ax1.hist(np.random.randn(100), bins=10, color='b', alpha=0.3)
ax2.scatter(np.arange(30), np.arange(30) + 3*np.random.randn(30))
plt.show()

a = [x+11 for x in range(6)]
b = [y+101 for y in range(6)]
print(a, b)

for m,n in zip(a,b):
    print(m, n)

print(list(range(8)))