您的位置:首页 > 编程语言 > Python开发

使用python的matplotlib画图

2018-03-06 17:40 295 查看
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=True在x分布不均匀时,很小区域可能未上色。这时需要根据曲线的范围直接对全部范围上色

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(‘样式’)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息