zoukankan      html  css  js  c++  java
  • 【Matplotlib】 移动spines

    相关文档:

    Spines 是连接轴刻度标记的线,而且标明了数据区域的边界。 他们可以被放置在任意位置。直到现在,他们仍是轴的边界。我们将要改变现状,因为我们想要spines 置于中间。因为有四个spine(上下左右),我们将要通过设置颜色(无)丢弃上面和右侧的部分。 进而我们移动下面和左边的线到坐标0(数据空间)。

    上面的设置可以通过以下代码设置

    ...
    ax = plt.gca()  # gca stands for 'get current axis'
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    ax.spines['bottom'].set_position(('data',0))
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data',0))
    ...
    

    完整的代码如下:

    import numpy as np
    import matplotlib.pyplot as plt
    
    plt.figure(figsize=(8,5), dpi=80)
    plt.subplot(111)
    
    X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
    C = np.cos(X)
    S = np.sin(X)
    
    plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-")
    plt.plot(X, S, color="red", linewidth=2.5, linestyle="-")
    
    ax = plt.gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    ax.spines['bottom'].set_position(('data',0))
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data',0))
    
    plt.xlim(X.min() * 1.1, X.max() * 1.1)
    plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
      [r'$-pi$', r'$-pi/2$', r'$0$', r'$+pi/2$', r'$+pi$'])
    
    plt.ylim(C.min() * 1.1, C.max() * 1.1)
    plt.yticks([-1, 0, +1],
      [r'$-1$', r'$0$', r'$+1$'])
    
    plt.show()
    

    图像形式如下:

  • 相关阅读:
    java实现模拟登陆
    springboot整合kafka(转)
    springboot使用缓存(三)
    springboot使用缓存(二)
    springboot使用缓存(一)
    springboot日期入参出参格式化注解:@DateTimeFormat 和 @JsonFormat (转)
    H5调用android相机拍照
    时间复杂度
    java guide面试突击版
    java面试手册-复制内容
  • 原文地址:https://www.cnblogs.com/nju2014/p/5634287.html
Copyright © 2011-2022 走看看