如何将“auto”设置为上限,但使用matplotlib.pyplot保持固定的下限
我想将y轴的上限设置为“自动”,但是我想保持y轴的下限始终为零。 我尝试过“自动”和“自动调整”,但这些似乎并不奏效。 先谢谢你。
这是我的代码:
import matplotlib.pyplot as plt def plot(results_plt,title,filename): ############################ # Plot results # mirror result table such that each parameter forms an own data array plt.cla() #print results_plt XY_results = [] XY_results = zip( *results_plt) plt.plot(XY_results[0], XY_results[2], marker = ".") plt.title('%s' % (title) ) plt.xlabel('Input Voltage [V]') plt.ylabel('Input Current [mA]') plt.grid(True) plt.xlim(3.0, 4.2) #***I want to keep these values fixed" plt.ylim([0, 80]) #****CHANGE**** I want to change '80' to auto, but still keep 0 as the lower limit plt.savefig(path+filename+'.png')
您可以left
或right
传递set_xlim
:
plt.gca().set_xlim(left=0)
对于y轴,使用bottom
或top
:
plt.gca().set_ylim(bottom=0)
只需将xlim
设置为其中一个限制:
plt.xlim(xmin=0)
只需在@silvio上添加一点:如果使用轴来绘制figure, ax1 = plt.subplots(1,2,1)
。 那么ax1.set_xlim(xmin = 0)
也可以工作!
如前所述,根据matplotlib文档,可以使用matplotlib.axes.Axes
类的set_xlim
方法设置给定轴的x轴限制。
例如,
>>> ax.set_xlim(left_limit, right_limit) >>> ax.set_xlim((left_limit, right_limit)) >>> ax.set_xlim(left=left_limit, right=right_limit)
一个限制可以保持不变(例如,左限制):
>>> ax.set_xlim((None, right_limit)) >>> ax.set_xlim(None, right_limit) >>> ax.set_xlim(left=None, right=right_limit) >>> ax.set_xlim(right=right_limit)
要设置当前轴的x轴限制, matplotlib.pyplot
模块包含了只包装matplotlib.pyplot.gca
和matplotlib.axes.Axes.set_xlim
的xlim
函数。
def xlim(*args, **kwargs): ax = gca() if not args and not kwargs: return ax.get_xlim() ret = ax.set_xlim(*args, **kwargs) return ret
同样,对于y限制,请使用matplotlib.axes.Axes.set_ylim
或matplotlib.pyplot.ylim
。 关键字参数是top
和bottom
。