我在列印對齊的矩形時遇到問題。任務是實作生成一個無限序列的函式(但是教授說不一定,可以是,例如,10 個矩形),不與具有不同坐標的相等矩形相交。它應該看起來像圖片上的六邊形(但我需要矩形)的下部直線(具有相等的空間)。

現在我有這個代碼:
import matplotlib.pyplot as plt
class Figure:
def __init__(self):
self.x = []
self.y = []
def show(self):
plt.plot(self.x, self.y)
plt.axis([-0.2, 10, -0.2, 5])
plt.show()
class Rectangle(Figure):
def __init__(self):
self.x = [0, 0, 2, 2, 0]
self.y = [0, 1, 1, 0, 0]
def show():
plot = Rectangle()
plot.show()
show()
我不允許使用 matplotlib 創建圖形,應該使用我自己的類和函式來完成。第一個矩形的坐標已經在代碼中。第二個的坐標應該是:
x = [3, 3, 5, 5, 3]
y = [0, 1, 1, 0, 0]
第三個中:
x = [6, 6, 8, 8, 6]
y = [0, 1, 1, 0, 0]
等等。我看到 x 3 中的每個專案都添加了。但我不明白如何制作一個函式(或使用什么庫)來完成它并在一個圖中顯示所有矩形。提前感謝您的所有幫助!
uj5u.com熱心網友回復:
您可以使用for-loop 多次重復相同的代碼但使用不同的值 -plot.x = ...您可以使用 value fromfor添加3-3*i
而且您應該plt.show()從課堂中洗掉并只使用一次 - 在繪制所有矩形之后 - 這將在一個繪圖上顯示所有矩形。
import matplotlib.pyplot as plt
class Figure:
def __init__(self):
self.x = []
self.y = []
def show(self):
plt.plot(self.x, self.y)
plt.axis([-0.2, 10, -0.2, 5])
#plt.show()
class Rectangle(Figure):
def __init__(self):
self.x = [0, 0, 2, 2, 0]
self.y = [0, 1, 1, 0, 0]
def show():
for i in range(10):
plot = Rectangle()
plot.x = [x 3*i for x in plot.x]
plot.show()
plt.show()
show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/472798.html
標籤:Python matplotlib 哎呀
上一篇:繪制具有相同變數的多個類
