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