import numpy as np
import matplotlib.pyplot as mp
x = np.linspace(-np.pi, np.pi, 200) # 产生一个等差数列
cos_y = np.cos(x)
sin_y = np.sin(x)
ax = mp.gca()
ax.spines['left'].set_position(('axes',0.5))
ax.spines['bottom'].set_position(('data', 0))
# 将右边框和顶边框设置成无色
ax.spines['right'].set_color('None')
ax.spines['top'].set_color('None')
# 用直线连接曲线上各点
mp.plot(x, cos_y, linestyle='--', linewidth=1,color='dodgerblue')
mp.plot(x, sin_y, linestyle=':', linewidth=1.2,color='orangered')
# 显示图形
mp.show()
(a)ax.spines['bottom'].set_position(('data', 0))
(b) ax.spines['bottom'].set_position(('data', -3))
(c)ax.spines['bottom'].set_position(('data', -4))
抛出错误:
raise ValueError('bottom cannot be >= top')
ValueError: bottom cannot be >= top
在这里,由于本案例中是对称的, ax.spines['bottom'].set_position(('data', 4)) 这里 4 与 -4 是一致的,采用 -4 主要说明报错
的原因 bottom cannot be >= top 想不通原因。
这里面由两个原因没搞明白:
(1)范围值(如 4 )这个值是怎么界定的,当然在3到4之间还有系列值,此处不枚举;
(2)负值向下移动,应该是bottom - > bottom,为什么会有top值(bottom cannot be >= top)。
3.4 设置坐标轴范围