使用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(‘样式’)
实例:
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(‘样式’)
相关文章推荐
- 使用python matplotlib画图
- python使用matplotlib画图
- python使用matplotlib画图
- Python使用Com组件及Access查询分析类实现
- 在 Python中使用 cout << 'Hello,world!' << endl
- 使用python发送简单的邮件
- 在python 中使用 windows dll
- Python模块之chardir: 使用chartdir生成各种图表
- unix下面使用python无法广播
- 在python 中使用正则表达式
- 使用SWIG实现C++扩展Python
- 关于在组件GIS开发中使用Python的一点补充说明
- 使用minidom来处理XML的示例(Python 学习)(转载)
- C Java PHP Perl Python 的程序代码美化工具(Pretty Print Program/Source Code Beautifier)使用
- 在IE中使用Python作为开发脚本
- 第一次使用python
- python中使用状态机的简单例子---截取'/x00'之前的字符串
- 使用Python进行AES加密和解密的示例代码
- ctypes: 使用python调用C编写的动态链接库
- python 进行多线程编程,使用Semaphore控制线程数