【发布时间】:2019-02-26 01:44:04
【问题描述】:
绘制 2 个星系等效宽度比列表,我将它们相互绘制,然后我想消除线 y=(0.61)/(x-0.05)+1.3 上方的所有点,以便只有下方的点保留在图中。这是我到目前为止所拥有的,我已经查看了堆栈溢出,但对如何实现这一点感到迷茫。注意:我只希望消除y而不是y2以上的点,谢谢!
plt.scatter(NT,OT,s=5, c='r', marker='o')
x = np.linspace(-5,5,100)
y=(0.61)/(x-0.05)+1.3
y2 =((0.61)/(x-0.47)) + 1.19#
plt.plot(x, y, '-k')
plt.plot(x, y2, '--k')
plt.xlabel('log(NII/HA)', color='#1C2833')
plt.ylabel('log(OIII/HB)', color='#1C2833')
plt.ylim((-1,1.5))
plt.xlim((-2,0.5))
提前感谢任何建议!
【问题讨论】:
-
如果 y2 包含您的点,那么您可以使用列表推导过滤掉 y2 的值,给定一个高于 y 的 x。
-
y 和 y2 都是在散点图上绘制的线,数据绘制在 NT 和 OT 这两个比率,我不确定您将如何使用列表理解来完成这项工作
-
我明白了。您可以遍历 NT 和 OT 的每个点,如果它低于必须低于的 y 值,则仅将其包含在要绘制的点列表中。类似于this question 的解决方案。让我知道这是否有帮助。
标签: python python-3.x matplotlib