【问题标题】:Final tick marks missing when defined with np.arange使用 np.arange 定义时缺少最终刻度线
【发布时间】:2021-04-15 10:45:15
【问题描述】:

我想知道为什么 x 轴上的 6.28 和 y 轴上的 2 没有输出。我不想每天都指定 xticks 和 yticks,但是我该如何解决呢?

这是我的代码。

import numpy as np

import matplotlib.pyplot as plt

def f(x):
    return np.sin(x)

def g(x):
    return np.cos(3*x)

def h(x):
    return np.sin(x)+np.cos(3*x)

fig = plt.figure()

x = np.linspace(-2*np.pi, 2*np.pi, 100)

plt.plot(x, f(x), color='blue')

plt.plot(x, g(x), color='red')

plt.plot(x, h(x), color='black')

plt.ylim(-2,2)

plt.xlim(-2*np.pi, 2*np.pi)

plt.title('Trigonometric functions',size=20)

plt.xlabel('$x$')

plt.ylabel('$y$')

plt.xticks(np.arange(-2*np.pi,2*np.pi,1/2*np.pi))

plt.yticks(np.arange(-2,2,1))

plt.grid(True)

plt.show()

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    numpy.arange 返回半开区间[start, stop) 中的数字。因此,您提供的 stop 值不包括在内,这解释了您缺少的刻度。来自docs

    numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)

    返回给定间隔内均匀分布的值。

    值在半开区间[start, stop) 内生成(换句话说,包含开始但不包括停止的区间)。对于整数参数,该函数等效于 Python 内置的 range 函数,但返回的是 ndarray 而不是列表。

    例如:

    In [2]: np.arange(-2*np.pi, 2*np.pi, 1/2*np.pi)
    Out[2]: 
    array([-6.28318531, -4.71238898, -3.14159265, -1.57079633,  0.        ,
            1.57079633,  3.14159265,  4.71238898])
    
    In [3]: np.arange(-2, 2, 1)
    Out[3]: array([-2, -1,  0,  1])
    

    因此,在回答您的问题时,您需要在您希望在报价中显示的最终值之上添加一个值。例如:

    In [4]: np.arange(-2*np.pi, 2.5*np.pi, 1/2*np.pi)
    Out[4]: 
    array([-6.28318531, -4.71238898, -3.14159265, -1.57079633,  0.        ,
            1.57079633,  3.14159265,  4.71238898,  6.28318531])
    
    In [5]: np.arange(-2, 3, 1)
    Out[5]: array([-2, -1,  0,  1,  2])
    

    在您的代码中,您只需将 xticksyticks 行替换为:

    plt.xticks(np.arange(-2*np.pi, 2.5*np.pi, 1/2*np.pi))
    plt.yticks(np.arange(-2, 3, 1))
    

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      相关资源
      最近更新 更多