簡體   English   中英

如何在python中的圓圈上畫一顆星?

[英]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.

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