将图外的点设置为上限

use*_*991 5 python plot limits matplotlib

也许这个问题已经存在,但是我找不到。

我正在用Python绘制散点图。出于说明目的,我不想将轴范围设置为包括所有点-可能有一些非常高或非常低的值,而我所关心的只是这些点的存在-也就是说,它们需要在情节上,而不是其实际价值-而是位于画布顶部的某个位置。

我知道在IDL中有一个很好的简短语法:plot(x,y<value)y 中的任何值都将比value简单地放在y=value

我正在寻找类似的Python。有人可以帮我吗?

tmd*_*son 3

您可以使用np.minimum数据y将高于上限的任何内容设置为该限制。np.minimum按元素计算最小值,因此只有那些大于的值ymax才会被设置为ymax

例如:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0., np.pi*2, 30)
y = 10. * np.sin(x)

ymax = 5

fig, ax = plt.subplots(1)
ax.scatter(x, np.minimum(y, ymax))

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述