zoukankan      html  css  js  c++  java
  • 一、可视化

    1.单张图片读取并可视化

    书本上学习实例:

      import torch 
    
      import torch.nn as nn
    
      import matplotlib.pyplot as plt
    
      from PIL import Image
    
      #读取一张图片--转化为灰度图片--转化为Numpy数组
    
      myim = Image.open("data/Lenna.png")
    
      myimgray = np.array(myim.convert("L"),dtype=np.float)
    
      ##可视化图片
    
      plt.figure(figsize(6,6))
    
      plt.imshow(myimgray,cmap=plt.cm.gray)
    
      plt.axis("off")  ##不显示坐标
    
      plt.show()
    View Code

    拓展:

    学习matplotlib点击这里:(菜鸟教程)

    下面是教程当中的部分例子(方便查看学习),具体更多的用法看链接

    实例(1),单张图片绘制一个线条:

    import numpy as np 
    from matplotlib import pyplot as plt 
     
    x = np.arange(1,11) 
    y =  2  * x +  5 
    plt.title("Matplotlib demo") 
    plt.xlabel("x axis caption") 
    plt.ylabel("y axis caption") 
    plt.plot(x,y) 
    plt.show()
    View Code

     如需要将直线使用蓝色圆点表示出来可将语句变更为:plt.plot(x,y,"ob"),其中o表示圆形标记,b表示蓝色

    import numpy as np 
    import matplotlib.pyplot as plt 
    # 计算正弦曲线上点的 x 和 y 坐标
    x = np.arange(0,  3  * np.pi,  0.1) 
    y = np.sin(x)
    plt.title("sine wave form")  
    # 使用 matplotlib 来绘制点
    plt.plot(x, y) 
    plt.show()
    View Code

    在上面连接中还介绍了如下格式化字符,详情点开链接进一步查看学习。

    实例(2)绘制多个线条:

     subplot() 函数允许你在同一图中绘制不同的东西。

    import numpy as np 
    import matplotlib.pyplot as plt 
    # 计算正弦和余弦曲线上的点的 x 和 y 坐标 
    x = np.arange(0,  3  * np.pi,  0.1) 
    y_sin = np.sin(x) 
    y_cos = np.cos(x)  
    # 建立 subplot 网格,高为 2,宽为 1  
    # 激活第一个 subplot
    plt.subplot(2,  1,  1)  
    # 绘制第一个图像 
    plt.plot(x, y_sin) 
    plt.title('Sine')  
    # 将第二个 subplot 激活,并绘制第二个图像
    plt.subplot(2,  1,  2) 
    plt.plot(x, y_cos) 
    plt.title('Cosine')  
    # 展示图像
    plt.show()
    View Code

    from matplotlib import pyplot as plt 
    x =  [5,8,10] 
    y =  [12,16,6] 
    x2 =  [6,9,11] 
    y2 =  [6,15,7] 
    plt.bar(x, y, align =  'center') ##5对应12,8对应16
    plt.bar(x2, y2, color =  'g', align =  'center') ##align='center'居中
    plt.title('Bar graph') 
    plt.ylabel('Y axis') 
    plt.xlabel('X axis') 
    plt.show()
    View Code

     matplotlib.pyplot.bar(left, height, alpha=1, width=0.8, color=, edgecolor=, label=, lw=3)

     1. left:x轴的位置序列,一般采用range函数产生一个序列,但是有时候可以是字符串

     2. height:y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据;

     3. alpha:透明度,值越小越透明

     4. width:为柱形图的宽度,一般这是为0.8即可;

     5. color或facecolor:柱形图填充的颜色;

     6. edgecolor:图形边缘颜色

     7. label:解释每个图像代表的含义,这个参数是为legend()函数做铺垫的,表示该次bar的标签,其中legend()函数loc参数如下:

    'best'         : 0, (only implemented for axes legends)(自适应方式)
    'upper right'  : 1,
    'upper left'   : 2,
    'lower left'   : 3,
    'lower right'  : 4,
    'right'        : 5,
    'center left'  : 6,
    'center right' : 7,
    'lower center' : 8,
    'upper center' : 9,
    'center'       : 10,

    8. linewidth or linewidths or lw:边缘or线的宽

    matplotlib中柱状图bar的使用:

    详情点击这里(对于横坐标、纵坐标标签修改、颜色变化、加上标签等的使用)

    Matplotlib默认配置的具体内容

    # 导入 matplotlib 的所有内容(nympy 可以用 np 这个名字来使用)
    from pylab import *
    
    # 创建一个 8 * 6 点(point)的图,并设置分辨率为 80
    figure(figsize=(8,6), dpi=80)
    
    # 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
    subplot(1,1,1)
    
    X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
    C,S = np.cos(X), np.sin(X)
    
    # 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
    plot(X, C, color="blue", linewidth=1.0, linestyle="-")
    
    # 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
    plot(X, S, color="green", linewidth=1.0, linestyle="-")
    
    # 设置横轴的上下限
    xlim(-4.0,4.0)
    
    # 设置横轴记号
    xticks(np.linspace(-4,4,9,endpoint=True))
    
    # 设置纵轴的上下限
    ylim(-1.0,1.0)
    
    # 设置纵轴记号
    yticks(np.linspace(-1,1,5,endpoint=True))
    
    # 以分辨率 72 来保存图片
    # savefig("exercice_2.png",dpi=72)
    
    # 在屏幕上显示
    show()

    更多Matplotlib内容点击这里(线条标记、改变坐标、散点图、等高线图等内容)

  • 相关阅读:
    [GAMES101]计算机图形学 Assignment 作业1 透视投影 解析手记
    [GAMES101]计算机图形学 Assignment 0
    [算法竞赛入门经典] 象棋 ACM/ICPC Fuzhou 2011, UVa1589 较详细注释
    最长上升子序列
    Qt快速入门第三版PDF
    [C++]UVaLive7324 ASCII Addtion
    [算法竞赛入门经典]Message Decoding,ACM/ICPC World Finals 1991,UVa213
    由数据查询慢来浅谈下oracle中的like和instr函数的模糊查询效率问题
    swift学习资料 + 教程
    weblogic DataSource 配置注意事项
  • 原文地址:https://www.cnblogs.com/2020zxc/p/13620865.html
Copyright © 2011-2022 走看看