我正在尝试为简单的射弹运动制作一个情节。我的设置如下:
>>> js = db.read_text(..., blocksize=1e6)... # 1MB chunks
情节窗口出现但它只是没有显示任何内容。当我更换 plt.plot(x,y)与plt.plot(x,y,' ro')然后它很好。但这使我的观点看起来很大。有没有办法让它看起来像一条平滑的曲线?
答案 0 :(得分:0)
plt.plot(x, y, marker = 'o', color = 'black', size = '8')
有关不同类型标记的信息,请参阅documentation。
答案 1 :(得分:0)
在pyplot
中,plot
函数默认是在点序列之间绘制线条,而不是点本身。这是因为绘图的默认样式是'b-'
或蓝色实线。但这仅显示您的输入是否有多个点。例如,
plt.plot([0,1],[5,6])
plt.show()
将在点(0,5)
和(1,6)
之间生成一条线。当您仅针对plt.plot()
和x
的单个输入调用y
时,它会在第一个点之间绘制一条线而不是任何内容。即该线永远不会被绘制。
通过将样式参数从默认值更改为'ro'
,您可以告诉matplotlib将每个点绘制为红色圆圈,而不是在每对点之间绘制一条线。正如你所指出的那样,圈子可能非常大。
有几种方法可以修复您的代码:绘制点而不是圆圈,或者使圆圈变小,或者保留所有x和y坐标的列表并将它们绘制成一条线。
将你的情节风格改为'r.'
会产生小红点:
plt.plot(x,y, 'r.')
添加markersize
参数可以改变圆圈的大小:
plt.plot(x,y, 'ro', markersize=0.3)
您还可以保留所有积分的清单并将它们绘制在一起:
x_list = []
y_list = []
while t < 4:
x = v_x*t
y = v_yo*t + 0.5*a*t**2
t+=0.01
x_list.append(x)
y_list.append(y)
plt.plot(x_list,y_list)
plt.show()