使用matplotlib将y范围更改为从0开始

dy2hfwbg  于 2023-05-07  发布在  其他
关注(0)|答案(4)|浏览(212)

我使用matplotlib来绘制数据。下面是一段代码,它做了类似的事情:

import matplotlib.pyplot as plt
f, ax = plt.subplots(1)
xdata = [1, 4, 8]
ydata = [10, 20, 30]
ax.plot(xdata, ydata)
plt.show(f)

这显示了图形中的一条线,y轴从10到30。虽然我对x范围很满意,但我想更改y范围,从0开始,并调整ymax以显示所有内容。
我目前的解决方案是:

ax.set_ylim(0, max(ydata))

但是我想知道是否有一种方法可以说:自动缩放但从0开始。

vatpfxk5

vatpfxk51#

必须在绘图后设置范围。

import matplotlib.pyplot as plt
f, ax = plt.subplots(1)
xdata = [1, 4, 8]
ydata = [10, 20, 30]
ax.plot(xdata, ydata)
ax.set_ylim(ymin=0)
plt.show(f)

如果ymin在绘图前被更改,这将导致范围为[0,1]。

编辑:ymin参数已替换为bottom

ax.set_ylim(bottom=0)

文件:https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.set_ylim.html
你可以在x轴上用left和right做同样的事情:

ax.set_xlim(left=0)

文件:https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.set_xlim.html

3j86kqsm

3j86kqsm2#

试试这个

import matplotlib.pyplot as plt
xdata = [1, 4, 8]
ydata = [10, 20, 30]
plt.plot(xdata, ydata)
plt.ylim(ymin=0)  # this line
plt.show()

文档字符串如下:

>>> help(plt.ylim)
Help on function ylim in module matplotlib.pyplot:

ylim(*args, **kwargs)
    Get or set the *y*-limits of the current axes.

    ::

      ymin, ymax = ylim()   # return the current ylim
      ylim( (ymin, ymax) )  # set the ylim to ymin, ymax
      ylim( ymin, ymax )    # set the ylim to ymin, ymax

    If you do not specify args, you can pass the *ymin* and *ymax* as
    kwargs, e.g.::

      ylim(ymax=3) # adjust the max leaving min unchanged
      ylim(ymin=1) # adjust the min leaving max unchanged

    Setting limits turns autoscaling off for the y-axis.

    The new axis limits are returned as a length 2 tuple.
iszxjhcz

iszxjhcz3#

请注意,ymin将在Matplotlib 3.2 Matplotlib 3.0.2 documentation中删除。使用bottom代替:

import matplotlib.pyplot as plt
f, ax = plt.subplots(1)
xdata = [1, 4, 8]
ydata = [10, 20, 30]
ax.plot(xdata, ydata)
ax.set_ylim(bottom=0)
plt.show(f)
mec1mxoz

mec1mxoz4#

以下代码确保y值0始终出现在图中:

import numpy as np
import matplotlib.pyplot as plt
xdata = np.array([1, 4, 8])
ydata = np.array[10, 20, 30])
plt.plot(xdata, ydata)
plt.yticks(np.arange(min(0, min(xdata)), max(0, max(xdata)), 5))
plt.show()

它也仅适用于负y数据值。最后一个参数(勾选步骤)可以删除。

相关问题