Skip to main content
 首页 » 编程设计

python之图,穿过 y 轴

2025年05月04日13mengfanrong

如何用matplotlib绘制这样的图?

请您参考如下方法:

检查 this example来自 this group

例如:

from matplotlib import pyplot as plt 
import numpy as np 
 
def line(x, slope=1, zero=0): 
    return zero + slope * x 
 
x = np.array([-4,10]) 
y1 = line(x, 2, 2) 
y2 = line(x, 1, 3) 
 
fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(x,y1) 
ax.plot(x,y2) 
 
ax.spines['left'].set_position(('data', 0)) 
ax.spines['right'].set_color('none') 
ax.spines['bottom'].set_position(('data',0)) 
ax.spines['top'].set_color('none') 
ax.spines['left'].set_smart_bounds(True) 
ax.spines['bottom'].set_smart_bounds(True) 
ax.xaxis.set_ticks_position('bottom') 
ax.yaxis.set_ticks_position('left') 
 
plt.show() 

或者更接近你的图片(这里我去掉了 set_smart_bounds 因为在 win7 中似乎对这个例子没有影响):

ax.spines['left'].set_position(('data', 0)) 
ax.spines['right'].set_color('none') 
ax.spines['bottom'].set_position(('data',0)) 
ax.spines['top'].set_color('none') 
ax.xaxis.set_ticks_position('bottom') 
ax.yaxis.set_ticks_position('left') 
plt.ylim(ymin=0) 
plt.show()