使用python的matplotlib畫圖

Python——在圖中編輯公式

實例:

import matplotlib.pyplot as plt

import numpy as np

plt.subplot(111)

plt.plot()

plt.xlim([1,7])

plt.ylim([1,5])

plt.text(2,4,r'$ \alpha_i  \beta_j \pi  \lambda \omega $',size=15,color='r')

plt.text(4,4,r'$ sin(0) = cos(\frac{\pi}{2})$',size=15,color='r')

plt.text(2,2,r'$  \lim_{x \longrightarrow y} \frac{1}{x^3} $',size=15,color='r')

plt.text(4,2,r'$ \sqrt[4]{x} = \sqrt{y} $',size=15,color='r')

結果:

 

Python-----填充曲線之間的區域

(1)使用fill函數

import matplotlib.pyplot as plt

import numpy as np

x= np.linspace(0,5*np.pi,1000)

y1= np.sin(x)

y2= np.sin(2*x)

plt.plot(x,y1,color='r')

plt.plot(x,y2,color='g')

plt.fill(x,y1,'b',alpha=0.3)            #alpha爲透明度,添加透明度,顏色看起來柔和

plt.fill(x,y2,'r',alpha=0.3)

結果:

 

(2)使用fill_between函數

import matplotlib.pyplot as plt

import numpy as np

x= np.linspace(0,5*np.pi,1000)

y1= np.sin(x)

y2= np.sin(2*x)

plt.plot(x,y1,color='r')

plt.plot(x,y2,color='g')

plt.fill_between(x,y1,y2,where=y1>y2,facecolor='yellow',interpolate=True,alpha=0.3)

       # where=y1>y2,facecolor='yellow'爲判斷條件,當曲線1在曲線2上時,填充黃色

       # interpolate=Truex分佈不均勻時,很小區域可能未上色。這時需要根據曲線的範圍直接對全部範圍上色

plt.fill_between(x,y1,y2,where=y2>=y1,facecolor='blue',interpolate=True,alpha=0.3)

結果:

 

 

任務:畫出下圖

 

import matplotlib.pyplot as plt

import numpy as np

import matplotlib.patches as mpatches

# 生成4個子圖

fig, axes = plt.subplots(ncols = 2, nrows = 2)

# 4個圖的座標軸作爲4個對象

ax1,ax2,ax3,ax4 = axes.ravel()

# 第一個圖

x,y = np.random.normal(size=(2,100))

ax1.plot(x,y,'o')

# 第二個圖

x= np.arange(0,10)

y= np.arange(0,10)

ncolors = len(plt.rcParams['axes.color_cycle'])

shift = np.linspace(0,10,ncolors)

for s in shift:

    ax2.plot(x,y+s,'-')

# 第三個圖

x= np.arange(5)

y1,y2,y3 = np.random.randint(0,25,size=(3,5))

width = 0.3

ax3.bar(x,y1,width,color=plt.rcParams['axes.color_cycle'][1])

ax3.bar(x+width,y2,width,color=plt.rcParams['axes.color_cycle'][2])

ax3.bar(x+2*width,y3,width,color=plt.rcParams['axes.color_cycle'][3])

# 第四個圖

for color in plt.rcParams['axes.color_cycle']:  

# for i, color in enumerate(plt.rcParams['axes.color_cycle']): 效果一樣

    xy = np.random.normal(size=2)

ax4.add_patch(plt.Circle(xy,radius=0.2,color=color))

# 將座標軸對齊,使10個圓同時顯示

ax4.axis('equal')    

結果:

 

使用:自行選擇樣式

plt.style.use(‘樣式’)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章