我需要帮助在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条答案
按热度按时间oewdyzsn1#
通过
plt.gca()
获取当前轴,然后设置其限制:isr3a4wc2#
你可以做的一件事是通过使用matplotlib.pyplot.axis自己设置轴范围。
matplotlib.pyplot.axis
0,10表示x轴范围。0,20表示y轴范围。
也可以使用matplotlib.pyplot.xlim或matplotlib.pyplot.ylim
matplotlib.pyplot.ylim
chhqkbe13#
另一种解决方法是获取图的轴并重新分配,只更改y值:
1l5u6lss4#
你可以从
matplotlib.pyplot.axes
示例化一个对象,然后调用它的set_ylim()
。它会是这样的:s2j5cfk05#
只是为了微调。如果你想只设置轴的其中一个边界而让另一个边界不变,你可以选择下面的一个或多个语句
请查看xlim和ylim的文档
smtd7mpg6#
这至少在matplotlib 2.2.2版本中有效:
也许这是一个很好的方式来设置例如xmin和ymax,等等。
1rhkuytd7#
为了补充@Hima的答案,如果你想修改当前的x或y限制,你可以使用以下方法。
我发现当我想从默认的绘图设置中缩小或放大一点时,这特别有用。
bjg7j2ky8#
这应该可以工作。你的代码对我来说是有效的,就像Tamás和Manoj Govindan一样。看起来你可以尝试更新Matplotlib。如果你不能更新Matplotlib(例如,如果你没有足够的管理权限),也许使用不同的后端
matplotlib.use()
会有所帮助。wi3ka0sx9#
ylim
可以使用Axes.set()
进行设置。事实上,可以通过set()
设置一系列属性,例如tick,ticklabels,labels,title等(在OP中单独设置)。同样,
ylim
(和其他属性)也可以在plt.subplot
示例中设置。要为多个子图设置
ylim
(和其他属性),请使用plt.setp
。例如,如果我们在OP的代码中包含2个以上的子图,并且如果我们想为所有子图设置相同的属性,一种方法如下: