0
我有一個從等值線圖中得到的x,y值的數組,我想繪製這些值。因爲它是圓圈內的圓形,pyplot在圓圈之間繪製任意線。有誰知道一種方法來刪除這條線?連接兩個圓的yplot線
我嘗試整理不起作用的點。我可以考慮刪除這條線的唯一方法是手動將這些值移動到一個新的數組中並分別繪製它們。不過,我有這些情況中的幾個,並且不希望篩選每個數據點。
#Plotted contours of a variable
cs1 = ax1.contourf(x,z,refl0,clevs)
#Get the contour lines for the 10th contour of the plot
p1 = cs1.collections[10].get_paths()[0]
v = p1.vertices
x1=v[:,0]
y1=v[:,1]
#Plot the contour lines
ax1 = plt.subplot(111)
ax1.plot(x1,y1)
這裏是一個通用的示例代碼
import numpy as np
from matplotlib import pyplot as plt
x= np.arange(-100,100,10)
y= np.arange(-100,100,10)
#Make a random circular function
xi,yi = np.meshgrid(x,y)
z= 2*xi +xi**2 -yi +yi**2
#This is the contour plot of the data
ax = plt.subplot(111)
clevs = np.arange(-100,110,10)*100
cs1 = ax.contourf(xi,yi,z,clevs)
plt.show()
#Get the contour lines for the 10th contour of the above plot
p1 = cs1.collections[11].get_paths()[0]
v = p1.vertices
x1=v[:,0]
y1=v[:,1]
#Plot the contour lines
ax1 = plt.subplot(111)
ax1.plot(x1,y1)
plt.show()
我最初的猜測是你必須將數據集分成單獨的數組。如果兩個圓的點數都相等,那麼可以通過對數組進行索引來相對簡單地實現這一點。讓我知道,我可以制定一個適當的答案。 – fsimkovic
不幸的是,圈子的點數不一樣,點的數量也沒有規律的間隔。我有9個這樣的其他數組,每個圈也有不同數量的點。 – BenT
你能提供一些更多的信息嗎?即什麼是'cs1.collections',你如何生成數據點,什麼是'val'等等...... – fsimkovic