我一直在为学校做编程项目。目标是用图表模拟弹道,包括风阻
我已经达到了我的目标,只想补充一些细节。一个细节是限制图形,使其不低于零(因为显示地面以下的投射物路径没有多大意义)。我希望matplotlib在f(x)时立即停止绘制图形<;0.
然而,我不知道该怎么做。我注意到我使用x=np.linespace(0,10000,500)设置了x的范围。如果图形在x轴上低于0或高于10000,它将在0和/或10000处被截断。我如何为y做同样的事情
这是我的密码:
import matplotlib.pyplot as plt
import numpy as np
*bunch of variables*
x = np.linespace(0, 10000, 500)
y = *formula for ballistic trajectory*
y_0 = 0 * x
*labels and titles*
plt.grid()
plt.xlim(0)
plt.ylim(0)
plt.plot(x, y)
plt.plot(x, y_0, color="black")
plt.show
如果将下限和上限都传递给
plt.ylim()
,则曲线将仅显示在这些限制之间的位置。话虽如此,仅将下限设置为零,至少应确保显示的曲线不低于零,因此我不确定问题的原因在任何情况下,这里都有一个完整的示例,可以按预期工作:
应在创建绘图后设置限制。如果不想,则无需设置最大值
注意:您还可以在绘图之前设置类似
plt.ylim(0, 170)
的内容。但是,如果不使用plt.ylim(0)
设置最大值,那么最大值将被设置为默认值1。最终得到的是一个截断的绘图。这就是为什么需要在绘图后设置它评论后的补充回答
要使用
y<0
删除数据点,可以执行以下操作:相关问题 更多 >
编程相关推荐