如何使用matplotlib set_yscale

Sha*_*ang 4 python matplotlib

我正在用Matplotlib绘制一个函数,我想将y轴设置为log-scale.

但是,我一直在使用错误set_yscale().在设置了我的x值和y值的值之后,我写了

import matplotlib as plt

plot1 = plt.figure()
plt.plot(x, y)
plt.set_xscale("log")
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

AttributeError: 'module' object has no attribute 'set_xscale'
Run Code Online (Sandbox Code Playgroud)

所以,我试试

plot1 = plt.figure()
plt.plot(x, y)
plt.set_xscale("log")
Run Code Online (Sandbox Code Playgroud)

我犯了同样的错误.

你怎么称呼这个功能?

The*_*tor 15

当你matplotlib.pyplot直接使用你的数字时,你只需要使用plt.xscale('log')plt.yscale('log')代替plt.set_xscale('log')或调用它plt.set_yscale('log')

仅当您使用轴实例时:

fig = plt.figure()
ax = fig.add_subplot(111)
Run Code Online (Sandbox Code Playgroud)

你用它来称呼它

ax.set_xscale('log')
Run Code Online (Sandbox Code Playgroud)

例:

>>> import matplotlib.pyplot as plt
>>> plt.set_xscale('log')
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    plt.set_xscale('log')
AttributeError: 'module' object has no attribute 'set_xscale'

>>> plt.xscale('log') # THIS WORKS
>>> 
Run Code Online (Sandbox Code Playgroud)

然而

>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.set_xscale('log')
>>> 
Run Code Online (Sandbox Code Playgroud)