[英]How to draw a star over a circle in python?
我正在嘗試將星星疊加在一個圓圈上,我成功地使用以下方法繪制了一個圓圈:
import matplotlib.pyplot as plt
%matplotlib inline
circle = plt.Circle((0.0,0.0),radius=0.75, fc='r')
fig, ax = plt.subplots()
plt.gca().add_patch(circle)
ax.axis('scaled')
ax.scatter(x,y,s=320, marker='*')
ax.axis('off');
為了開始疊加,我首先嘗試了這個:
x = ax.get_xticks()
s = 320
y = np.zeros(len(x))
plt.scatter(x,y, marker='*', s=s)
好的,我可以成功創建星星。
但是當我將上述內容疊加在圓圈上時,我無法查看星星。 有什么幫助嗎? 謝謝
zorder
(作為z
的順序)來告訴 matplotlib 星星應該比圓更靠近觀察者。 使用不同的zorder
您可以在彼此之上創建多個圖層。 圓圈和星星的默認zorder
為 1,因此無法預測哪個可見。 在這種情況下,任何至少 2 的數字都可以用於星星。 如果圖中也有線條,則星星至少需要zorder
3 才能位於頂部。
import matplotlib.pyplot as plt
import numpy as np
# % matplotlib inline
n = np.arange(45)
theta = n * (3 - np.sqrt(5)) * np.pi
r = 0.1 * np.sqrt(n)
x = r * np.cos(theta)
y = r * np.sin(theta)
circle = plt.Circle((0.0, 0.0), radius=0.75, fc='deepskyblue')
fig, ax = plt.subplots()
ax.add_patch(circle)
ax.axis('scaled')
ax.scatter(x, y, s=320, marker='*', color='gold', zorder=3)
ax.plot(x,y,color='tomato')
ax.axis('off')
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.