I want to set the upper limit of the y-axis to 'auto', but I want to keep the lower limit of the y-axis to always be zero. I tried 'auto' and 'autorange', but those don't seem to work. Thank you in advance.
我想将y轴的上限设置为'auto',但我想保持y轴的下限始终为零。我试过'auto'和'autorange',但那些似乎不起作用。先谢谢你。
Here is my code:
这是我的代码:
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')
4 个解决方案
#1
68
You can pass just left
or right
to set_xlim
:
您可以向左或向右传递到set_xlim:
plt.gca().set_xlim(left=0)
For the y axis, use bottom
or top
:
对于y轴,使用底部或顶部:
plt.gca().set_ylim(bottom=0)
#2
27
Just set xlim
for one of the limits:
只需为其中一个限制设置xlim:
plt.xlim(xmin=0)
#3
3
As aforementioned and according to the matplotlib documentation, the x-limits of a given axis ax
can be set using the set_xlim
method of the matplotlib.axes.Axes
class.
如前所述,根据matplotlib文档,可以使用matplotlib.axes.Axes类的set_xlim方法设置给定轴ax的x限制。
For instance,
例如,
>>> ax.set_xlim(left_limit, right_limit)
>>> ax.set_xlim((left_limit, right_limit))
>>> ax.set_xlim(left=left_limit, right=right_limit)
One limit may be left unchanged (e.g. the left 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)
To set the x-limits of the current axis, the matplotlib.pyplot
module contains the xlim
function that just wraps matplotlib.pyplot.gca
and matplotlib.axes.Axes.set_xlim
.
要设置当前轴的x限制,matplotlib.pyplot模块包含xlim函数,该函数仅包装matplotlib.pyplot.gca和matplotlib.axes.Axes.set_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
Similarly, for the y-limits, use matplotlib.axes.Axes.set_ylim
or matplotlib.pyplot.ylim
. The keyword arguments are top
and bottom
.
同样,对于y限制,请使用matplotlib.axes.Axes.set_ylim或matplotlib.pyplot.ylim。关键字参数是top和bottom。
#4
2
Just add a point on @silvio 's: if you use axis to plot like figure, ax1 = plt.subplots(1,2,1)
. Then ax1.set_xlim(xmin = 0)
also works!
只需在@silvio上添加一个点:如果你使用轴绘制如图,ax1 = plt.subplots(1,2,1)。然后ax1.set_xlim(xmin = 0)也有效!
#1
68
You can pass just left
or right
to set_xlim
:
您可以向左或向右传递到set_xlim:
plt.gca().set_xlim(left=0)
For the y axis, use bottom
or top
:
对于y轴,使用底部或顶部:
plt.gca().set_ylim(bottom=0)
#2
27
Just set xlim
for one of the limits:
只需为其中一个限制设置xlim:
plt.xlim(xmin=0)
#3
3
As aforementioned and according to the matplotlib documentation, the x-limits of a given axis ax
can be set using the set_xlim
method of the matplotlib.axes.Axes
class.
如前所述,根据matplotlib文档,可以使用matplotlib.axes.Axes类的set_xlim方法设置给定轴ax的x限制。
For instance,
例如,
>>> ax.set_xlim(left_limit, right_limit)
>>> ax.set_xlim((left_limit, right_limit))
>>> ax.set_xlim(left=left_limit, right=right_limit)
One limit may be left unchanged (e.g. the left 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)
To set the x-limits of the current axis, the matplotlib.pyplot
module contains the xlim
function that just wraps matplotlib.pyplot.gca
and matplotlib.axes.Axes.set_xlim
.
要设置当前轴的x限制,matplotlib.pyplot模块包含xlim函数,该函数仅包装matplotlib.pyplot.gca和matplotlib.axes.Axes.set_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
Similarly, for the y-limits, use matplotlib.axes.Axes.set_ylim
or matplotlib.pyplot.ylim
. The keyword arguments are top
and bottom
.
同样,对于y限制,请使用matplotlib.axes.Axes.set_ylim或matplotlib.pyplot.ylim。关键字参数是top和bottom。
#4
2
Just add a point on @silvio 's: if you use axis to plot like figure, ax1 = plt.subplots(1,2,1)
. Then ax1.set_xlim(xmin = 0)
also works!
只需在@silvio上添加一个点:如果你使用轴绘制如图,ax1 = plt.subplots(1,2,1)。然后ax1.set_xlim(xmin = 0)也有效!