簡體   English   中英

繪制多個圖形並將圓添加到繪圖中

[英]Plotting Multiple figures and adding circles to plots

我目前正在編碼軌道軌跡,並試圖在一次運行中繪制兩個數字。 我想用一個圖來顯示衛星的軌道路徑,並在圖中以圓的形式顯示地球和月球。 然后,我想要一個單獨的圖形,該圖形顯示時間的軌跡能量。

我認為我遇到的問題在於嘗試向第一個數字添加圓圈,盡管我對如何規避此問題完全迷失了。 Re和Rm分別只是地球和月球的半徑,列表僅是其余代碼中我的值的列表。 我認為問題出在無花果上,axes = plt.subplots行。 我沒有得到兩個單獨的數字,而是將所有值混搭為一個數字。

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()

第二個圖沒有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()

一種更好的解決方案,也使其更易於理解,是僅使用帶紋理的對象進行繪圖(matplotlib API)。

import matplotlib.pyplot as plt

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

fig2, ax2 = plt.subplots()
ax2.plot([1,2,3],[3,2,1], 'r')
ax2.plot([1,2,3],[2,3,1], 'b')
ax2.plot([1,2,3],[1,3,2], 'g')

plt.show()

在這種情況下,曲線所屬的軸是明確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM