我需要帮助在matplotlib上设置y轴的限制。下面是我尝试过的代码,没有成功。
import matplotlib.pyplot as plt
plt.figure(1, figsize = (8.5,11))
plt.suptitle('plot title')
ax = []
aPlot = plt.subplot(321, axisbg = 'w', title = "Year 1")
ax.append(aPlot)
plt.plot(paramValues,plotDataPrice[0], color = '#340B8C',
marker = 'o', ms = 5, mfc = '#EB1717')
plt.xticks(paramValues)
plt.ylabel('Average Price')
plt.xlabel('Mark-up')
plt.grid(True)
plt.ylim((25,250))
根据我在这张图上得到的数据,我得到y轴的极限为20和200。但是,我希望限制为20和250。
9条答案
按热度按时间fcwjkofz1#
通过
plt.gca()
获取当前轴,然后设置其限制:p4tfgftt2#
您可以做的一件事是使用matplotlib.pyplot.axis自行设置轴范围。
**matplotlib.pyplot.axis *
0,10是x轴范围。0,20是y轴范围。
也可以使用matplotlib.pyplot.xlim或matplotlib.pyplot.ylim
matplotlib.pyplot.ylim
b5lpy0ml3#
另一种解决方法是获取图的轴并重新分配,只更改y值:
w8f9ii694#
你可以从
matplotlib.pyplot.axes
示例化一个对象,并调用它的set_ylim()
。应该是这样的:62o28rlo5#
只是为了微调。如果只想设置轴的一个边界,而让另一个边界不变,可以选择下列语句中的一个或多个
查看xlim和ylim的文档
7gyucuyw6#
这至少在matplotlib 2.2.2版本中有效:
也许这是一个很好的方式来设置例如xmin和ymax,等等。
fcipmucu7#
为了补充@Hima的答案,如果你想修改当前的x或y限制,你可以使用以下方法。
我发现当我想从默认的绘图设置中缩小或放大一点时,这特别有用。
z9smfwbn8#
这个应该能用你的代码对我有用就像对Tamás和Manoj Govindan一样。看起来你可以尝试更新Matplotlib。如果你不能更新Matplotlib(例如,如果你没有足够的管理权限),也许使用
matplotlib.use()
的不同后端会有所帮助。9ceoxa929#
ylim
可以使用Axes.set()
进行设置。事实上,通过set()
可以设置大量的属性,比如tick、ticklabels、labels、title等。(在OP中单独设置)。同样,
ylim
(和其他属性)也可以在plt.subplot
示例中设置。对于OP中的情况,这将是要为多个子图设置
ylim
(和其他属性),请使用plt.setp
。例如,如果我们在OP的代码中包含2个以上的子图,并且如果我们想为所有子图设置相同的属性,则一种方法如下所示: