對分叉數據做鏡像處理
import numpy as npimport operatorimport osimport copyfrom matplotlib.font_manager import FontPropertiesfrom scipy.interpolate import lagrangeimport randomimport matplotlib.pyplot as pltnp.set_printoptions(threshold=np.inf) #輸出全部矩陣不帶省略號# random.seed(1000)for i in range(10): #固定一個點,盡量使點固定在0-1正方形的中間 pointx = random.uniform(0.3,0.7) pointy = random.uniform(0.3,0.7) #主分支在上方 a1x = random.uniform(pointx,0.8)#使第二個點盡量不那麼大 a2x = random.uniform(a1x,1) a3x = random.uniform(a2x,1) a1y = random.uniform(pointy,0.8) a2y = random.uniform(a1y,1) a3y = random.uniform(a2y,1) ax = [pointx,a1x,a2x,a3x] ay = [pointy,a1y,a2y,a3y] #以定點為中心,對圖像做鏡像處理 ax = np.array(ax) ay = np.array(ay) ax1 = 2 * pointx - ax#x坐標做鏡像處理 ay1 = 2 * pointy - ay#對y坐標鏡像處理 ########################### #左下分支 b1x = random.uniform(0.2,pointx)#使第二個點盡量不那麼小 b2x = random.uniform(0,b1x) b3x = random.uniform(0,b2x) b1y = random.uniform(0.2,pointy) b2y = random.uniform(0,b1y) b3y = random.uniform(0,b2y) bx = [b3x,b2x,b1x,pointx] by = [b3y,b2y,b1y,pointy] ############################# bx = np.array(bx) by = np.array(by) bx1 = 2 * pointx - bx by1 = 2 * pointy - by ############################## #又下分支 c1x = random.uniform(pointx,0.8)#使第二個點盡量不那麼大 c2x = random.uniform(c1x,1) c3x = random.uniform(c2x,1) c1y = random.uniform(0.2,pointy) c2y = random.uniform(0,c1y) c3y = random.uniform(0,c2y) cx = [pointx,c1x,c2x,c3x] cy = [pointy,c1y,c2y,c3y] ######################## cx = np.array(cx) cy = np.array(cy) cx1 = 2 * pointx - cx cy1 = 2 * pointy - cy ############################# x = [ax,bx,cx]#三分叉,上為a,左下b,右下c y = [ay,by,cy]# print(x)# print(y)# plt.plot(ax,ay)# plt.plot(bx,by)# plt.plot(cx,cy)# plt.plot(ax1,ay)# plt.plot(bx1,by)# plt.plot(cx1,cy) plt.plot(ax,ay1) plt.plot(bx,by1) plt.plot(cx,cy1)# plt.plot(ax1,ay1)# plt.plot(bx1,by1)# plt.plot(cx1,cy1)# plt.savefig(C:\Users\Administrator\Desktop\第8周\訓練數據圖片\%d.png % i) plt.show()
推薦閱讀:
※這篇官方科普可能是錯的
※郝柏林的四篇文章摘要
※人工合成生命的一小步:人工設計和合成最小細菌基因組
※特侖蘇自然科學課堂 | 有態度的水
TAG:自然科學 |