使用matplotlib绘制圆、椭圆、矩形、圆弧、楔形等

  以下小机器人是我利用matplotlib中楔(xie)形Wedge,弧线Arc,椭圆Ellipse,矩形Rectangle, 绘制这个机器人没有用到圆Circle,圆的关键参数只有圆心坐标和半径是关键,参数可借鉴代码中其他图形

 以下是实现上面机器人的代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from matplotlib.patches import Arc,Ellipse,Rectangle,Wedge#导入需要的包

fig,ax=plt.subplots(subplot_kw={'aspect':'equal'})#创建一个画布,并设定坐标轴变化相同
#机器人脚底的椭圆形影子shadow,参数有中心点的坐标、长轴长,短轴长,颜色,透明度alpha
shadow=Ellipse((2.5,0.5),4.2,0.5,color='silver',alpha=0.2)
#画一条直线,下面表示点(1,1)到点(4,1.3)
ax.plot([1,4],[1,1.3],color='k')
#绘制脚上的弧线,其中(2.5,1.1)为弧线的中心,3为圆弧的宽度,1为圆弧高度,theta1为圆弧起点处的
#角度,theta2为圆弧终点处的角度,color为颜色,lw为弧线宽度
base=Arc((2.5,1.1),3,1,angle=10,theta1=0,theta2=180,color='k',alpha=0.8,lw=2)
#绘制左脚,椭圆尚未旋转的时候是平躺的,angle表示逆时针旋转九十度
left_wheel=Ellipse((1,1),0.7,0.4,angle=95,color='blue')
right_wheel=Ellipse((4,1.3),0.7,0.4,angle=85,color='k')#绘制右脚
#绘制红色和sliver色的屁股
bottom_joinstyle1=Ellipse((2.5,2),1,0.3,facecolor='silver',edgecolor='w')
bottom_joinstyle2=Ellipse((2.5,1.7),1,0.3,facecolor='red',edgecolor='w')
#绘制左肩膀
left_joinstyle=Ellipse((1,5.75),0.5,0.25,angle=90,color='k')
#绘制左手肘,指定坐标,半径,从多少度逆时针转到多少度,圆缺少了一块组成了楔形
left_arm_joinstyle1=Wedge((0.3,4.55),0.1,0,360,color='k')
#绘制左手
left_arm_joinstyle2=Wedge((0,4.0),0.2,290,250,color='k')
#绘制右肩膀
right_joinstyle=Ellipse((4,5.75),0.5,0.25,angle=90,color='k')
#绘制右手肘
right_arm_joinstyle1=Wedge((4.3,6.95),0.1,0,360,color='k')
绘制右手,为了方便区别,右手设定为了红色
right_arm_joinstyle2=Wedge((4.3,7.45),0.2,110,70,color='red')
#绘制两层椭圆形组成的脖子
top_joinstyle1=Ellipse((2.5,6.2),0.5,0.2,facecolor='silver',edgecolor='w')
top_joinstyle2=Ellipse((2.5,6.3),0.5,0.2,facecolor='silver',edgecolor='w')
#绘制矩形的身子
body=Rectangle((1,2.1),3,4,color='steelblue')
#左胳膊的大臂和小臂使用plot绘制线段,将线段的宽度设定为4
left_arm1=ax.plot([0.3,0.875],[4.55,5.75],color='silver',lw=4)
left_arm2=ax.plot([0,0.3],[4.2,4.55],color='silver',lw=4)
#右胳膊的大臂和小臂使用plot绘制线段,将线段的宽度设定为4
right_arm1=ax.plot([4.125,4.3],[5.75,6.95],color='silver',lw=4)   
right_arm2=ax.plot([4.3,4.3],[6.95,7.25],color='silver',lw=4)
#使用一个横线和一个弧线组成头的边框
ax.plot([1,4],[6.4,6.4],color='steelblue')                           
head=Arc((2.5,6.4),3,2.5,angle=0,theta1=0,theta2=180,color='steelblue')
#绘制两个眼睛
left_eye=Wedge((2,7),0.4,0,360,color='gold',width=0.6)    
left_eye_center=Wedge((2,7),0.05,15,345,color='black')
right_eye=Wedge((3,7),0.4,0,360,color='gold',width=0.6)
right_eye_center=Wedge((3,7),0.05,15,345,color='black')                           
#将以上创建的图形对象全都放在polygon列表中
polygon=[shadow,
        base,
        left_wheel,
        right_wheel,
        bottom_joinstyle1,
        bottom_joinstyle2,
        left_joinstyle,
        left_arm_joinstyle1,
        left_arm_joinstyle2,
        right_joinstyle,
        right_arm_joinstyle1,
        right_arm_joinstyle2,
        top_joinstyle1,
        top_joinstyle2,
        body,
        head,
        left_eye,
        left_eye_center,
        right_eye,
        right_eye_center]
for pln in polygon:
   ax.add_patch(pln)#使用add_patch方法将创建的每一个图形对象添加到ax画布上
ax.axis([-0.5,6,-0.5,10])#指定画布坐标轴的范围
#使用text方法在画布上添加文字,指定坐标和确切的文字,颜色以及字体大小等
ax.text(0.5,8.5,' i am beautiful\n i am a robot',color='blue',fontsize=14)
ax.text(1.5,4,'The fairy',color='k',fontsize=12)
#自动调整在画板上创建的子图参数,使之填充整个图像区域。
plt.tight_layout()
plt.show()#展示图像

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用Matplotlib库中的`patches`模块绘制矩形环图。 下面是一个简单的例子: ```python import matplotlib.pyplot as plt import matplotlib.patches as patches # 创建布和子图 fig, ax = plt.subplots() # 创建矩形环 outer_rect = patches.Rectangle((0, 0), 1, 1, linewidth=1, edgecolor='black', facecolor='none') inner_rect = patches.Rectangle((0.2, 0.2), 0.6, 0.6, linewidth=1, edgecolor='black', facecolor='none') # 添加矩形环到子图 ax.add_patch(outer_rect) ax.add_patch(inner_rect) # 设置坐标轴刻度和标签 ax.set_xticks([0, 0.5, 1]) ax.set_yticks([0, 0.5, 1]) ax.set_xticklabels(['0', '0.5', '1']) ax.set_yticklabels(['0', '0.5', '1']) # 显示图像 plt.show() ``` 这个例子中,我们首先创建了一个布和一个子图。然后,我们使用`patches.Rectangle()`函数创建了两个矩形环:一个外部矩形环和一个内部矩形环。最后,我们将这两个矩形环添加到子图中,并设置了坐标轴刻度和标签。 运行这段代码,就可以得到一个简单的矩形环图了。你可以修改矩形环的位置、大小、颜色等参数,来创建更加复杂和有趣的图像。 ### 回答2: 要使用matplotlib绘制矩形环图,我们需要先导入matplotlib库并创建一个新的图表。然后,我们可以使用matplotlib的patches模块来创建矩形和环图的对象。矩形环图由内部矩形和外部矩形组成,可以通过设置不同的参数来调整内部矩形和外部矩形的大小、颜色和边框样式。 首先,我们可以使用patches.Rectangle()函数创建内部矩形对象,并设置其位置、宽度和高度等属性。然后,我们可以使用patches.Rectangle()再次创建外部矩形对象,并设置其位置、宽度和高度等属性。 接下来,我们可以使用patches.Path()函数创建一个环形路径,并通过设置其内部和外部圆弧的半径、起始角度和结束角度来调整环图的形状。然后,我们可以使用patches.PathPatch()函数将环形路径转换为图形对象,并设置其颜色和边框样式。 最后,我们需要将内部矩形和外部矩形以及环形路径添加到图表中,并使用plt.show()函数显示图表。 以下是一个简单的示例代码,用于绘制一个内部宽度为2、高度为4的蓝色矩形,外部宽度为6、高度为8的红色矩形,环图的内部圆弧半径为3、外部圆弧半径为5,起始角度为0度,结束角度为180度的环形路径: ```python import matplotlib.pyplot as plt import matplotlib.patches as patches # 创建一个新的图表 fig, ax = plt.subplots() # 创建内部矩形对象 inner_rect = patches.Rectangle((0, 0), 2, 4, color='blue') # 创建外部矩形对象 outer_rect = patches.Rectangle((0, 0), 6, 8, color='red') # 创建环形路径 path = patches.Path([patches.Path.MOVETO, patches.Path.CURVE4, patches.Path.CURVE4, patches.Path.CURVE4, patches.Path.CLOSEPOLY], [(-3, -5), (-5, 0), (-3, 5), (3, 5), (5, 0)], closed=True) # 将环形路径转换为图形对象 patch = patches.PathPatch(path, facecolor='none', edgecolor='black') # 将内部矩形和外部矩形以及环形路径添加到图表中 ax.add_patch(inner_rect) ax.add_patch(outer_rect) ax.add_patch(patch) # 显示图表 plt.show() ``` 通过运行上述代码,我们就可以在matplotlib绘制出一个矩形环图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱打羽毛球的小怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值