2
指定用下面的代碼點:Matplotlib不顯示從ginput
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon
data = np.random.rand(4, 4)
plt.imshow(data)
points_xy = np.array(plt.ginput(3))
p = Polygon(points_xy, alpha=0.3)
plt.gca().add_artist(p)
plt.show()
多邊形不顯示。它如果我添加這個底:
plt.imshow(data)
這是因爲多邊形是數據層的下方,當我打電話plt.imshow(data)
它再次移動多邊形下面的數據層?
硬編碼的點,而不是使用plt.ginput()
也給出正確的結果:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon
data = np.random.rand(4, 4)
plt.imshow(data)
points_x = (0, 2, 1)
points_y = (0, 1, 3)
points_xy = np.array([points_x, points_y]).T
p = Polygon(points_xy, alpha=0.3)
plt.gca().add_artist(p)
plt.show()
爲什麼不與我原來的代碼顯示的多邊形?
我使用Python 3.4和matplotlib 1.4.3。