我想将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')
6条答案
按热度按时间xoshrz7s1#
您可以只将
left
或right
传递给set_xlim
:对于y轴,使用
bottom
或top
:重要提示:"必须在绘制数据后使用函数。如果不这样做,则左/下将使用默认值0,上/右将使用默认值1。"-Luc's answer.
mum43rcc2#
只需将其中一个限值设置为
xlim
:zdwk9cvp3#
如上所述,根据matplotlib文档,可以使用
matplotlib.axes.Axes
类的set_xlim
方法设置给定轴ax
的x极限。例如,
一个限值可以保持不变(例如左限值):
要设置当前轴的x限制,
matplotlib.pyplot
模块包含xlim
函数,该函数仅 Packagematplotlib.pyplot.gca
和matplotlib.axes.Axes.set_xlim
。同样,对于y限制,使用
matplotlib.axes.Axes.set_ylim
或matplotlib.pyplot.ylim
。关键字参数为top
和bottom
。kqqjbcuj4#
set_xlim
和set_ylim
允许使用None
值来实现这一点。但是,您必须在绘制完数据后使用函数AFTER。如果不这样做,它将对左/下使用默认值0,对上/右使用默认值1。一旦设置了限制,每次绘制新数据时,它都不会重新计算“自动”限制。(I.e.,在上面的例子中,如果你在最后执行
ax.plot(...)
,它不会给予想要的效果。)holgip5t5#
只需在@silvio 's上添加一个点:如果你用坐标轴像
figure, ax1 = plt.subplots(1,2,1)
一样绘图。那么ax1.set_xlim(xmin = 0)
也可以工作!htrmnn0y6#
您还可以执行以下操作:
如果你想使用set(),这会很有帮助,因为它允许你一次设置几个参数: