【问题标题】:Problems while plotting on Matplotlib在 Matplotlib 上绘图时出现问题
【发布时间】:2015-01-12 18:37:24
【问题描述】:

我在使用 python matplotlib 创建函数的基本绘图时遇到问题,在 wolfram alpha 和其他绘图引擎中,最终绘图似乎与我通过 matplotlib 创建的绘图大不相同。

我按照 matplotlib 中的示例进行操作,只是将 np.sin(x) 函数替换为我需要绘制的函数。

我正在使用几个函数,所以这是我需要绘制的第一个函数,但它根本不起作用。

这是我正在使用的代码和前面的情节比较。

__author__ = 'alberto'
#
import numpy 
import matplotlib.pyplot as plt
#
x = numpy.arange(-20, 20, 0.1)
y = ((3*x**2) + 12/(x**3) - 5)
plt.plot(x, y)
plt.show()

沃尔夫拉姆

Matplotlib.

我正在使用 Anaconda Python(2.7.8)。

祝你有个愉快的一天!!!

【问题讨论】:

    标签: python numpy matplotlib plot anaconda


    【解决方案1】:

    您可以通过将nan 分配给极值来调用 plt.plot 生成两条断开的曲线(从而处理渐近线)。 Mathematica 会自动为您处理这个问题; matplotlib 需要你做一些工作:

    import numpy  as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(-20, 20, 1000)
    y = ((3*x**2) + 12/(x**3) - 5)
    mask = np.abs(y) > 100
    y[mask] = np.nan
    plt.plot(x, y)
    plt.grid()
    plt.show()
    

    产量

    【讨论】:

    • 谢谢大家的回答!终于知道自己在做什么了,非常感谢!我的头撞在键盘上 X__X
    【解决方案2】:

    如果您查看轴标签,您会发现 matplotlib 显示的查看窗口比 Wolfram Alpha 大得多。 Wolfram alpha 大致向您显示 -4 <= x <= 4-50 <= y <= 100,但 matplotlib 向您显示 -20 <= x <= 20 和巨大的 y 限制。

    要获得可比较的图表,请设置视图限制:

    plt.xlim(-4, 4)
    plt.ylim(-50, 100)
    

    【讨论】:

      【解决方案3】:

      您必须手动限制垂直尺寸! 这是一个可能的解决方案:

      import numpy 
      import matplotlib.pyplot as plt
      
      x = numpy.arange(-20, 20, 0.1)
      y = ((3*x**2) + 12/(x**3) - 5)
      plt.plot(x, y)
      plt.ylim(-50, 100)
      plt.show()
      

      注意plt.ylim 函数!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-01
        • 1970-01-01
        • 2016-02-03
        相关资源
        最近更新 更多