代码之家  ›  专栏  ›  技术社区  ›  kilojoules

pyplot日志等高线图不起作用

  •  2
  • kilojoules  · 技术社区  · 6 年前

    当我画等高线图时,一切如预期

    x = (np.linspace(0, 10))
    y = (np.linspace(0, 10))
    X, Y = np.meshgrid(x, y)
    plt.contour(X, Y, np.sqrt(X) * Y)
    

    enter image description here

    但是,当将轴设置为日志日志时,没有显示任何内容。当我输入以下代码时, pyplot 只显示一个空白屏幕。这是预期的行为吗?如何在日志日志轴上绘制等高线图?

    import matplotlib.pyplot as plt
    import numpy as np
    x = (np.linspace(0, 10))
    y = (np.linspace(0, 10))
    X, Y = np.meshgrid(x, y)
    plt.contour(X, Y, np.sqrt(X) * Y)
    plt.xscale('log')
    plt.yscale('log')
    plt.show()
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   busybear Danny Boy150    6 年前

    你看不到任何东西的原因是因为轴限制太窄。因为 0 在你的数据集中, log(0) 没有定义,所以轴上的限制不清楚,默认值在10左右。如果扩展X轴和Y轴,则应该看到一些数据。

    plt.xlim(1, 10)
    plt.ylim(1, 10)