1. 程式人生 > >python用matplotlib畫圖例子(3)

python用matplotlib畫圖例子(3)

背景1

每50毫秒產生一個標準正態隨機數與之前的數進行累加。

程式碼1

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

fig = plt.figure() 
ax = fig.add_subplot(111)

#初始漫步數
N = 30
#最大漫步數
MaxN = 500

x = np.random.randn(N).cumsum()
pdata, = ax.plot(x,'r') 

#固定x軸,y軸的範圍
ax.set_xlim(0,MaxN)
ax.set_ylim(-50
,50) ax.set_title('$Random\ walk$') #定義更新規則 #data是生成器的返回值 def update(data): x = pdata.get_xdata() y = pdata.get_ydata() x = np.hstack((x,len(x))) y = np.hstack((y,y[-1]+data)) pdata.set_xdata(x) pdata.set_ydata(y) return pdata #生成器 def generated(): n = 1 while n<MaxN-N: yield
np.random.randn() anim = animation.FuncAnimation(fig, update, generated, interval=50) plt.show()

結果1

這裡寫圖片描述

背景2

畫一個圖示的圖形塊patch。

結果2

這裡寫圖片描述

程式碼2

import numpy as np
import matplotlib.pyplot as plt
import math

fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(1,1,1)

#多邊形:各點
pgo = plt.Polygon([[0.
,0.4],[0.4,0.],[.8,0.4],[0.4,0.8]],color='#00F5FF',alpha=0.2) #圓形 cc = plt.Circle((.4,.4),math.sqrt(0.08),color='#D02090',alpha=1) #矩形:頂點,寬高 re1 = plt.Rectangle((.2,.2),.2,.2,color = 'r') re2 = plt.Rectangle((.6,.2),-0.2,.2,color = 'y') re3 = plt.Rectangle((.2,.6),0.2,-.2,color = 'g') re4 = plt.Rectangle((.6,.6),-0.2,-.2,color = 'b') #圓形:圓心,半徑 c1 = plt.Circle((.3,.4),.05,color='g',alpha=1) c2 = plt.Circle((.4,.3),.05,color='r',alpha=1) c3 = plt.Circle((.5,.4),.05,color='y',alpha=1) c4 = plt.Circle((.4,.5),.05,color='b',alpha=1) ax.add_patch(cc) ax.add_patch(pgo) ax.add_patch(re1) ax.add_patch(re2) ax.add_patch(re3) ax.add_patch(re4) ax.add_patch(c1) ax.add_patch(c2) ax.add_patch(c3) ax.add_patch(c4) #不顯示座標軸 plt.axis("off") #顯示影象 plt.show() #儲存圖片 #dpi 影象解析度 #bbox_inches 圖片需要儲存的部分,'tight'將嘗試剪除空白部分 fig.savefig(r"C:\Users\tinysoft\Desktop\gg3.png",dpi = 400)#,bbox_inches='tight')