我正在嘗試使天空中的星系團與它們的相對尺寸形成很好的可視化。因此,我正在製作每個星系團的點圖,然後嘗試在每個星系周圍放置一個圓圈。如何在未爲每個圓圈繪製新圖的情況下將多個圓添加到圖中?
這裏是到目前爲止我的代碼:
import matplotlib.pyplot as plt
from pylab import *
import csv
with open("/Users/Olly/Documents/FINALVALUES/xPeak.csv", "rU") as x:
reader = csv.reader(x)
list1 = list(reader)
with open("/Users/Olly/Documents/FINALVALUES/yPeak.csv", "rU") as y:
reader = csv.reader(y)
list2 = list(reader)
with open("/Users/Olly/Documents/FINALVALUES/radius.csv", "rU") as r:
reader = csv.reader(r)
list3 = list(reader)
xList = []
yList = []
rList = []
for i in list1:
for j in i:
xList.append(int(j))
for i in list2:
for j in i:
yList.append(int(j))
for i in list3:
for j in i:
rList.append(int(j))
#At this point I have my 3 lists for plotting
plt.figure(1)
plt.rc('text', usetex = True)
plt.rc('font', family = 'serif')
plt.plot(xList, yList, marker = '.', color = 'k', linestyle = 'None')
plt.title('W1 galaxy cluster field')
plt.xlabel(r'$\vartheta$ (arcmins)')
plt.ylabel(r'$\vartheta$ (arcmins)')
for i in range(len(xList))
circle1 = plt.Circle((xList[i], yList[i]), rList[i], color = 'r')
fig, ax = plt.subplots()
ax.add_artist(circle1)
plt.show()
(的Xlist和yList是(X,Y)座標的星系團的中心,並且RLIST是羣集的半徑。)
因此,我首先創建我的點圖。然後,我遍歷每個數據點,以便爲每個數據點設計一個單獨的圓。
據我所知,編寫'fig,ax'會導致在該循環中創建的圓圈被添加到預定義的圖形(1)中。所以我不明白爲什麼每個圈子都會出現多個情節。
我該如何修改它,以便爲所有354個數據點創建一個圓,並將它們全部放在同一個圖上?
(編輯:這對於其他問題在堆棧中是獨一無二的,因爲其他問題不涉及導致多個繪圖的循環。這裏的問題不是如何繪製一個圓圈 - 如同其他問題 - 而是如何在代碼中需要循環時繪製多個圓圈)。
可能重複的[matplotlib:添加繪圖圓](http://stackoverflow.com/questions/3439639/matplotlib-add-circle-to-plot) – Julien