Skip to main content
 首页 » 编程设计

python之spines 在 matplotlib 中的位置

2025年05月04日10pengyingh

我有一个情节:

但我希望刻度线位于零轴(就像在正常图形中一样...)。 我看过this example还有this example但我有问题:

如果我尝试:

import matplotlib.pyplot as plt 
import numpy as np 
 
def f(t): 
    A = 2409.505 
    rho = 0.3260 
    C = 0.00 
    if C == 0.0: 
        return (A*np.exp(-t/rho)) 
    else: 
        return (A*np.exp(-t/rho)) - (C/r**6) 
 
t1 = np.arange(0, 15, 0.01) 
plt.xlim(-1, 16) 
plt.ylim(-500, 2500) 
plt.spines['left'].setposition('0') 
plt.spines['bottom'].setposition('0') 
plt.plot(t1, f(t1), 'b', linewidth = '1.5') 
plt.tick_params(top = 'off', right = 'off') 
plt.grid(linestyle = '--', linewidth = 0.05) 
plt.show() 

我得到错误:

Traceback (most recent call last): 
  File "C:\Users\Rebecca\Downloads\pyplot_simple.py", line 16, in <module> 
    plt.spines['left'].setposition('0') 
AttributeError: 'module' object has no attribute 'spines' 

如果我尝试:

import matplotlib.pyplot as plt 
import numpy as np 
 
def f(t): 
    A = 2409.505 
    rho = 0.3260 
    C = 0.00 
    if C == 0.0: 
        return (A*np.exp(-t/rho)) 
    else: 
        return (A*np.exp(-t/rho)) - (C/r**6) 
 
t1 = np.arange(0, 15, 0.01) 
plt.xlim(-1, 16) 
plt.ylim(-500, 2500) 
plt.axis['xzero'].set_axisline_style('-') 
plt.axis['xzero'].set_visible(True) 
plt.spines['bottom'].setposition('0') 
plt.plot(t1, f(t1), 'b', linewidth = '1.5') 
plt.tick_params(top = 'off', right = 'off') 
plt.grid(linestyle = '--', linewidth = 0.05) 
plt.show() 

我得到错误:

Traceback (most recent call last): 
  File "C:\Users\Rebecca\Downloads\pyplot_simple.py", line 16, in <module> 
    plt.axis['xzero'].set_axisline_style('-') 
TypeError: 'function' object is not subscriptable 

我真的很困惑,我毫不怀疑我又一次遗漏了一些非常明显的东西,所以非常感谢任何帮助
干杯

请您参考如下方法:

试试这个:

plt.gca().spines['bottom'].set_position(('data',0))