python用matplotlib畫圖例子(3)
阿新 • • 發佈:2019-02-18
背景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')