python 100天 94 画一个变化的彩色轮盘


如果想要画如下的图形


先画一个饼图

'''
Created on 2023年4月9日
@author: admin
'''
import numpy as np
import matplotlib.pyplot as plt
n = 20
X = np.ones(n)
X[-1] *= 2
plt.pie(X, explode=X*.05, colors = ['%f' % (i/float(n)) for i in range(n)])



继续进行参数设置

fig = plt.gcf()
w, h = fig.get_figwidth(), fig.get_figheight()
r = h / float(w)
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5 * r, 1.5 * r)
plt.xticks([])
plt.yticks([])


画上面的一个框



from matplotlib.patches import FancyBboxPatch
ax = plt.gca()
ax.add_patch(FancyBboxPatch((-0.05, .87),
          width=.66, height=.165, clip_on=False,
          boxstyle="square,pad=0", zorder=3,
          facecolor='white', alpha=1.0,
          transform=plt.gca().transAxes))

FancyBboxPatch主要是实现一个框形区域,后面专门讲这个例子

FancyBboxPatch 类似于 Rectangle ,但它在矩形周围画了一个漂亮的方框。矩形框到花式框的转换委托给中定义的样式类 BoxStyle .

参数:

xy浮起,浮起

框的左下角。

width浮动

盒子的宽度。

height浮动

盒子的高度。

箱型 STR或 matplotlib.patches.BoxStylestr或

花式盒子的样式。这可以是 BoxStyle 样式名的实例或字符串,以及可选的逗号分隔属性(例如“Round,pad=0.2”)。此字符串传递给 BoxStyle 构建一个 BoxStyle 对象。请参阅此处获取完整的文档。

以下框样式可用:

等级

名字

阿特斯

圆圈

circle

pad=0.3

DArrow

darrow

pad=0.3

LArrow

larrow

pad=0.3

RArrow

rarrow

pad=0.3

回合

round

焊盘=0.3,圆角尺寸=无

第四回合

round4

焊盘=0.3,圆角尺寸=无

圆齿

roundtooth

衬垫=0.3,齿尺寸=无

锯齿形

sawtooth

衬垫=0.3,齿尺寸=无

正方形

square

pad=0.3

mutation_scale浮点,默认值:1

应用于填充样式的缩放因子。

mutation_aspect可选浮动

在变异之前,矩形的高度将被该值压缩,并且变异的长方体将被它的倒数拉伸。例如,这允许不同的水平和垂直填充。


添加文字


plt.text(-0.05, 1.02, " Pie Chart: plt.pie(...)
",
          horizontalalignment='left',
          verticalalignment='top',
          size='xx-large',
          transform=plt.gca().transAxes)
plt.text(-0.05, 1.01, "

 Make a pie chart of an array ",
horizontalalignment='left',
verticalalignment='top',
size='large',
transform=plt.gca().transAxes)

完整的代码如下


'''
Created on 2023年4月9日
@author: admin
'''
import numpy as np
import matplotlib.pyplot as plt
n = 20
X = np.ones(n)
X[-1] *= 2
plt.pie(X, explode=X*.05, colors = ['%f' % (i/float(n)) for i in range(n)])
fig = plt.gcf()
w, h = fig.get_figwidth(), fig.get_figheight()
r = h / float(w)
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5 * r, 1.5 * r)
plt.xticks([])
plt.yticks([])

# Add a title and a box around it
from matplotlib.patches import FancyBboxPatch
ax = plt.gca()
ax.add_patch(FancyBboxPatch((-0.05, .87),
      width=.66, height=.165, clip_on=False,
      boxstyle="square,pad=0", zorder=3,
      facecolor='white', alpha=1.0,
      transform=plt.gca().transAxes))
#
plt.text(-0.05, 1.02, " Pie Chart: plt.pie(...)
",
        horizontalalignment='left',
        verticalalignment='top',
        size='xx-large',
        transform=plt.gca().transAxes)

plt.text(-0.05, 1.01, "

 Make a pie chart of an array ",
        horizontalalignment='left',
        verticalalignment='top',
        size='large',
        transform=plt.gca().transAxes)
plt.show()


import numpy as np
import matplotlib.pyplot as plt

n = 20
X = np.ones(n)
X[-1] *= 2
plt.pie(X, explode=X*.05, colors = ['%f' % (i/float(n)) for i in range(n)])

fig = plt.gcf()
w, h = fig.get_figwidth(), fig.get_figheight()
r = h / float(w)

plt.xlim(-1.5, 1.5)
plt.ylim(-1.5 * r, 1.5 * r)
plt.xticks([])
plt.yticks([])


# Add a title and a box around it
from matplotlib.patches import FancyBboxPatch
ax = plt.gca()
ax.add_patch(FancyBboxPatch((-0.05, .87),
                            width=.66, height=.165, clip_on=False,
                            boxstyle="square,pad=0", zorder=3,
                            facecolor='white', alpha=1.0,
                            transform=plt.gca().transAxes))

plt.text(-0.05, 1.02, " Pie Chart:           plt.pie(...)
",
        horizontalalignment='left',
        verticalalignment='top',
        size='xx-large',
        transform=plt.gca().transAxes)

plt.text(-0.05, 1.01, "

   Make a pie chart of an array ",
        horizontalalignment='left',
        verticalalignment='top',
        size='large',
        transform=plt.gca().transAxes)

plt.show()
展开阅读全文

页面更新:2024-03-12

标签:浮起   长方体   衬垫   轮盘   矩形   字符串   盒子   样式   尺寸   彩色   高度   完整

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top