前言:
此刻姐妹们对“python 矩形周长面积程序编写”大致比较注意,兄弟们都想要学习一些“python 矩形周长面积程序编写”的相关内容。那么小编同时在网上收集了一些关于“python 矩形周长面积程序编写””的相关资讯,希望兄弟们能喜欢,看官们快快来学习一下吧!1 要点:
=====
1.1 由浅入深讲解matplotlib画矩形(正方形和长方形),多种方法实现,由简单到复杂,讲解和注释详细,适合收藏。
1.2 正方形可以实现,那么长方形也就可以实现了。
1.3 通过此方法,熟悉matplotlib作图相关知识和python编程思维。
2 方法一
======
2.1 Line2D法:画4条边的直线
2.2 代码
from matplotlib.lines import Line2Dimport matplotlib.pyplot as pltfigure, ax = plt.subplots()# 4条line的坐标点(x,y)line1 = [(1, 1), (2, 1)]line2 = [(2, 1), (2, 2)]line3 = [(2, 2), (1, 2)]line4 = [(1, 2), (1, 1)]#打包法(line1_xs, line1_ys) = zip(*line1)(line2_xs, line2_ys) = zip(*line2)(line3_xs, line3_ys) = zip(*line3)(line4_xs, line4_ys) = zip(*line4)# 创建4条线,并添加ax.add_line(Line2D(line1_xs, line1_ys, linewidth=1, color='b'))ax.add_line(Line2D(line2_xs, line2_ys, linewidth=1, color='r'))ax.add_line(Line2D(line3_xs, line3_ys, linewidth=1, color='k'))ax.add_line(Line2D(line4_xs, line4_ys, linewidth=1, color='y'))# 展示plt.plot()plt.show()
2.3 效果图
3 方法二
=======
3.1 plot坐标点法
3.2 代码
import matplotlib.pyplot as plt#fig,ax = plt.subplots() #可以注释掉#坐标点法x=[1,2,2,1,1]y=[1,1,2,2,1]plt.plot(x,y) #等同于上面#plt.plot([1,2,2,1,1],[1,1,2,2,1])plt.show()
3.3 效果图:省略,四条边默认颜色:b=blue
4 方法三
=======
4.1 patches(mpatches)+Rectangle法
4.2 代码
import matplotlib.pyplot as pltimport matplotlib.patches as patchesfig = plt.figure()ax = fig.add_subplot(111)rect=patches.Rectangle( (1, 1), # (x,y) 1, # width 1, # height color='g', #边的颜色 fill=False #是否填充,默认填充 ) ax.add_patch(rect)'''#等同于上面ax.add_patch( patches.Rectangle( (1, 1), # (x,y) 1, # width 1, # height ))'''#如果坐标点x和y不是(0,0),那么需要下面这个,否则不显示# 设置图形显示的时候x轴和y轴等比例ax.axis("equal")plt.show()'''#另外一种import numpy as npimport matplotlib.pyplot as pltimport matplotlib.patches as mpatches fig, ax = plt.subplots()# 矩形的左下角#xy = np.array([1, 1])xy=(1,1)# 第二个参数和第三个参数是先长后宽rect = mpatches.Rectangle(xy, 2, 2, color= "g")ax.add_patch(rect)# 设置图形显示的时候x轴和y轴等比例ax.axis("equal")plt.show()'''
4.3 效果图:省略
5 方法四
=======
5.1 plt.Rectangle法
5.2 代码:
import matplotlib.pyplot as plt'''fig = plt.figure()ax = fig.add_subplot(111)'''#等同于上面这个fig,ax = plt.subplots()rect = plt.Rectangle((1,1),2,2,edgecolor='g',fill=False)ax.add_patch(rect)#如果坐标点x和y不是(0,0),那么需要下面这个,否则不显示# 设置图形显示的时候x轴和y轴等比例ax.axis("equal")plt.show()
6 方法五
======
6.1 plt.gca().add_patch(plt.Rectangle)法,最佳方法。
6.2 代码
import matplotlib.pyplot as plt#plt.gca()获得,分别表示Get Current Axes#plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax#有时候会写成#ax = plt.gca()#不能设置颜色和是否填充颜色等plt.gca().add_patch(plt.Rectangle((1,1),2,2))#如果坐标点x和y不是(0,0),那么需要下面这个,否则不显示# 设置图形显示的时候x轴和y轴等比例plt.gca().axis("equal") #ax.axis("equal") plt.show()
7 方法六
======
7.1 高级版,点击鼠标,获取两点自动生成矩形
7.2 来源
7.3 代码
import matplotlib.pyplot as plt from matplotlib.patches import Rectangleclass Annotate(object): def __init__(self): self.ax = plt.gca() self.rect = Rectangle((0,0), 1, 1) self.x0 = None self.y0 = None self.x1 = None self.y1 = None self.ax.add_patch(self.rect) self.ax.figure.canvas.mpl_connect('button_press_event', self.on_press) self.ax.figure.canvas.mpl_connect('button_release_event', self.on_release) def on_press(self, event): self.x0 = event.xdata self.y0 = event.ydata def on_release(self, event): self.x1 = event.xdata self.y1 = event.ydata self.rect.set_width(self.x1 - self.x0) self.rect.set_height(self.y1 - self.y0) self.rect.set_xy((self.x0, self.y0)) self.ax.figure.canvas.draw() a = Annotate() plt.show()
7.4 效果图
自己整理并分享出来,供大家学习。