绘制多个图形并在绘图中添加圆

2024-05-20 10:44:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在对轨道的轨迹进行编码,并试图在一次运行中绘制两个图形。我想用一个图形来显示卫星的轨道轨迹,在图中地球和月球都是圆形的。然后我想要一个单独的数字,显示轨迹随时间的能量。在

我认为我的问题在于试图在第一个数字上添加圆圈,尽管我完全不知道如何规避这个问题。Re和Rm分别是地球和月球的半径,列表只是我在代码其余部分的值的列表。我想问题出在图中,轴=plt.子批次行。我没有得到两个单独的数字,而是把所有的值混成一个数字。在

plt.figure(1)
fig, axes = plt.subplots()
earth = plt.Circle((0,0), Re, color = 'blue' )
moon = plt.Circle((0,ym), Rm, color = 'yellow' )
plt.gca().set_aspect('equal', adjustable='box')
plt.plot(xlist,ylist)
axes.add_patch(earth)
axes.add_patch(moon)

plt.figure(2)
plt.plot(tlist,pelist, 'r')
plt.plot(tlist,kelist, 'b')
plt.plot(tlist,elist, 'g')

plt.show()

Tags: rmre图形地球列表plot轨迹plt
1条回答
网友
1楼 · 发布于 2024-05-20 10:44:55

第二个图没有plt.plot()可以绘制的子图。因此,它取最后一个打开的子批次(轴)。还有一个数字比游戏需要的多。在

简单的解决方案是删除双图形创建并在第二个图形中添加一个子图:

import matplotlib.pyplot as plt

fig, axes = plt.subplots()
earth = plt.Circle((0,0),1, color = 'blue' )
moon = plt.Circle((0,2),0.2, color = 'yellow' )
plt.gca().set_aspect('equal', adjustable='box')
axes.add_patch(earth)
axes.add_patch(moon)
plt.plot([0,0],[0,2])

plt.figure(2)
plt.subplot(111)
plt.plot([1,2,3],[3,2,1], 'r')
plt.plot([1,2,3],[2,3,1], 'b')
plt.plot([1,2,3],[1,3,2], 'g')

plt.show()

一个更好的解决方案是只使用creted对象进行打印(matplotlib API)。在

^{pr2}$

在这种情况下,很明显这些图属于哪个轴。在

相关问题 更多 >