当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Matplotlib.patches.Wedge用法及代码示例


Matplotlib是Python中令人惊叹的可视化库,用于数组的二维图。 Matplotlib是一个基于NumPy数组的多平台数据可视化库,旨在与更广泛的SciPy堆栈配合使用。

matplotlib.patches.Wedge

这个 matplotlib.patches.Wedge类用于在图中添加wedge-shaped个色块。楔子居中xy = (x, y)半径为r时,它将theta1扫描到theta2(以度为单位)。如果给定宽度,则从内半径r-宽度到外半径r绘制部分楔形。

用法: class matplotlib.patches.Wedge(center, r, theta1, theta2, width=None, **kwargs)

参数:

  1. centre:楔形的中心点。
  2. r:楔形的半径。
  3. theta1:第一扫角。
  4. theta2:第二扫描角。
  5. width:扫描宽度

下表提供了kwargs属性:



PROPERTY DESCRIPTION
agg_filter 一个过滤器函数,它接受一个(m,n,3)浮点数组,一个dpi值返回一个(m,n,3)数组
alpha 浮点数或无
animated bool
抗锯齿或抗锯齿 unknown
capstyle {‘butt’,“回合”,‘projecting’}
clip_box Bbox
clip_on bool
clip_path [(Path,Transform)|补丁|无]
color rgba元组的颜色或顺序
contains callable
edgecolor或ec或edgecolors 颜色或无或‘auto’
facecolor或fc或facecolors 颜色或无
figure figure
fill bool
gid str
hatch {‘/’、‘\’、‘|’、‘-’、‘+’、‘x’, ‘o’、‘O’、‘.’、‘*’}
in_layout bool
joinstyle {‘miter’,“回合”,‘bevel’}
线型或ls {“-”,“-”,“-。”,“:”,“,(偏移量,on-off-seq),...}
线宽或线宽或lw 浮点数或无
path_effects AbstractPathEffect
picker 无或布尔或浮点数或可赎回
path_effects AbstractPathEffect
picker float或callable [[Artist,Event],Tuple [bool,dict]]
rasterized 布尔还是无
sketch_params (比例:浮点数,长度:浮点数,随机性:浮点数)
snap 布尔还是无
transform matplotlib.transforms.Transform
url str
visible bool
zorder float

范例1:

import numpy as np 
from matplotlib.patches import Circle, Wedge, Polygon 
from matplotlib.collections import PatchCollection 
import matplotlib.pyplot as plt 
  
  
# Fixing random state for reproducibility 
np.random.seed(19680801) 
  
fig, ax = plt.subplots() 
  
resolution = 50  # the number of vertices 
N = 3
x = np.random.rand(N) 
y = np.random.rand(N) 
radii = 0.1 * np.random.rand(N) 
patches = [] 
  
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r) 
    patches.append(circle) 
  
x = np.random.rand(N) 
y = np.random.rand(N) 
radii = 0.1 * np.random.rand(N) 
theta1 = 360.0 * np.random.rand(N) 
theta2 = 360.0 * np.random.rand(N) 
  
for x1, y1, r, t1, t2 in zip(x, y, radii, 
                             theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2) 
    patches.append(wedge) 
  
# Some limiting conditions on Wedge 
patches += [ 
    Wedge((.3, .7), .1, 0, 360),             # Full circle 
    Wedge((.7, .8), .2, 0, 360, width = 0.05),  # Full ring 
    Wedge((.8, .3), .2, 0, 45),              # Full sector 
    Wedge((.8, .3), .2, 45, 90, width = 0.10),  # Ring sector 
] 
  
for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), True) 
    patches.append(polygon) 
  
colors = 100 * np.random.rand(len(patches)) 
p = PatchCollection(patches, alpha = 0.4) 
p.set_array(np.array(colors)) 
ax.add_collection(p) 
fig.colorbar(p, ax = ax) 
  
plt.show()

输出:

范例2:

import numpy as np 
import matplotlib.pyplot as plt 
  
  
fig, ax = plt.subplots(figsize =(6, 3),  
                       subplot_kw = dict(aspect ="equal")) 
  
recipe = ["375 g flour", 
          "75 g sugar", 
          "250 g butter", 
          "300 g berries"] 
  
data = [float(x.split()[0]) for x in recipe] 
ingredients = [x.split()[-1] for x in recipe] 
  
  
def func(pct, allvals):
    absolute = int(pct / 100.*np.sum(allvals)) 
      
    return "{:.1f}%\n({:d} g)".format(pct, absolute) 
  
  
wedges, texts, autotexts = ax.pie(data, 
                                  autopct = lambda pct:func(pct, data), 
                                  textprops = dict(color ="w")) 
  
ax.legend(wedges, ingredients, 
          title ="Ingredients", 
          loc ="center left", 
          bbox_to_anchor =(1, 0, 0.5, 1)) 
  
plt.setp(autotexts, size = 8, weight ="bold") 
  
ax.set_title("Recipie for a pie") 
  
plt.show()

输出:





注:本文由纯净天空筛选整理自GeeksforGeeks大神的英文原创作品 Matplotlib.patches.Wedge class in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。