关于matplotlib的绘制图形的基本代码,我们可以参照下面的连接

https://matplotlib.org/gallery/index.html

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplot.html#matplotlib.pyplot.subplot

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html#matplotlib.pyplot.subplots

在这个官网上选择你想要画的相似的模型图样点击进去就可以看代码了

下面介绍

注释

 import matplotlib.pyplot as plt
import numpy as np x = np.arange(-10,11,1) y = x*x plt.plot(x, y)
plt.annotate('this is the bottom',xy=(0,5),xytext=(0,20),
arrowprops=dict(facecolor='r',frac=0.3,headwidth=20,width=10))
# xy=(0,5)为箭头下面的点坐标,xytext=(0,20)表示说明文字的起始位置
# arrowprops中的facecolor表示颜色,frac表示箭头占总符号的长度比例,
# headwidth表示箭头的宽度,width表示尾部长方形的宽度 plt.show()

文字

 import matplotlib.pyplot as plt
import numpy as np x = np.arange(-10,11,1) y = x*x plt.plot(x,y)
# 两组进行对比
plt.text(-2,40,'function:y=x*x',family='serif',
size=20,color='r',style='italic',weight='black')
plt.text(-2,20,'function:y=x*x',family='fantasy',
size=20,color='g',style='oblique',weight='light',
bbox=dict(facecolor='r',alpha=0.2))
# family表示字体,size表示文字大小,color表示字体颜色,style表示斜体
# weight表示字体的粗细,weight也可以用数字表示
# bbox表示为字添加方框,方框里可以有颜色,透明度alpha描述 plt.show()

Tex公式

 import matplotlib.pyplot as plt

 fig = plt.figure()

 ax = fig.add_subplot(111)
ax.set_xlim([1,7])
ax.set_ylim([1,5]) # 在每个字符串之前要加\,如\alpha,这才表示数学符号,
# 其它的符号在matplotlib官网上均有详细介绍
ax.text(2,4,r'$ \alpha_i \beta_j \pi \lambda \omega $',size=25) ax.text(4,4,r'$ \sin(0)=\cos(\frac{\pi}{2}) $',size=25) ax.text(2,2,r'$ \lim_{(x \rightarrow y)} \frac{1}{x^3} $',size=25) ax.text(4,2,r'$ \sqrt[4]{x}=\sqrt{y} $',size=25) plt.show()

区域填充

 import matplotlib.pyplot as plt
import numpy as np x=np.linspace(0,5*np.pi,100)
y1=np.sin(x)
y2=np.sin(2*x) # 填充的区域会有线的痕迹所以可以不画线
# plt.plot(x,y1)
# plt.plot(x,y2) # 在函数曲线与x轴所围区域填充颜色
# plt.fill(x,y1,'b',alpha=0.3)
# plt.fill(x,y2,'r',alpha=0.3) fig=plt.figure()
ax=plt.gca()
ax.plot(x,y1,color='r')
ax.plot(x,y2,color='b') # 将颜色填充到两个函数曲线所围区域
ax.fill_between(x,y1,y2,where=y1>=y2,facecolor='y',interpolate=True)
ax.fill_between(x,y1,y2,where=y1<y2,facecolor='g',interpolate=True)
# where是条件表达式,
# 当曲线不够平滑interpolate=True自动将空白的地方填充完整 plt.show()

形状

 import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patches as mpatches fig, ax=plt.subplots() # 先确定中心坐标
xy1=np.array([0.2,0.2])
xy2=np.array([0.2,0.8])
xy3=np.array([0.8,0.2])
xy4=np.array([0.8,0.8]) circle=mpatches.Circle(xy1,0.05) # 画圆
ax.add_patch(circle) rect=mpatches.Rectangle(xy2,0.2,0.2,0.1,color='r') # 画矩形
ax.add_patch(rect) polygon=mpatches.RegularPolygon(xy3,5,0.1,color='g') # 画多边形
ax.add_patch(polygon) ellipse=mpatches.Ellipse(xy4,0.4,0.2,color='y') # 画椭圆
ax.add_patch(ellipse) # matplotlib.patches文档 plt.axis('equal') # x轴与y轴比例要相等
plt.grid() plt.show()

样式-美化

 import matplotlib.pyplot as plt
import numpy as np plt.style.use('ggplot') # 为所绘制图选择风格
fig, axes = plt.subplots(nrows=2, ncols=2, constrained_layout=True)
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.prop_cycle'])
# prop_cycle它会有7种颜色可以循环
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(1,25,size=(3,5))
width=0.25 ax3.bar(x,y1,width)
ax3.bar(x+width,y2,width)
ax3.bar(x+2*width,y2,width) colors=plt.rcParams['axes.prop_cycle']
for i, color in enumerate(colors):
xy=np.random.normal(size=2)
ax4.add_patch(plt.Circle(xy,radius=0.3,color=color['color'])) ax4.axis('equal')
plt.show()

极坐标

 import matplotlib.pyplot as plt
import numpy as np # r=np.empty(5)
r=np.empty(9)
r.fill(5)
# r=np.arange(1,6,1)
pi_two=np.pi*2 # 通过极坐标绘制正8边形
# 通过列表推导式传入多个角
theta=[x*pi_two/8 for x in range(9)] # theta=[0,np.pi/2,np.pi,3*np.pi/2,2*np.pi] ax=plt.subplot(111,projection='polar') ax.plot(theta,r,color='r',linewidth=3) ax.grid(True) plt.show()

函数几分图

 import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon def func(x):
return -(x-2)*(x-8)+40 x=np.linspace(0,10) y=func(x) fig,ax=plt.subplots() plt.plot(x,y,'r',linewidth=1) a=2
b=9
ax.set_xticks([a,b])
ax.set_yticks([])
ax.set_xticklabels(['$a$','$b$']) ix=np.linspace(a,b)
iy=func(ix) ixy=zip(ix,iy)
verts=[(a,0)]+list(ixy)+[(b,0)]
poly=Polygon(verts,facecolor='0.9',edgecolor='0.5')
ax.add_patch(poly) plt.figtext(0.9,0.05,'$x$')
plt.figtext(0.1,0.9,'$y$') x_math=(a+b)*0.5
y_math=30 plt.text(x_math,y_math,r'$\int_a^b (-(x-2)*(x-8)+40)$',
fontsize=20,horizontalalignment='center')
# horizontalalignment='center',会让公式自动中心对齐
plt.ylim(ymin=25) plt.show()

最新文章

  1. 【swift学习笔记】四.swift使用Alamofire和swiftyJson
  2. 最后一周psp
  3. 解密jQuery事件核心 - 绑定设计(一)
  4. OpenJudge 666:放苹果 // 瞎基本DP
  5. 在Win7系统中搭建Web服务器
  6. MyBatis&lt;forEach/&gt;如何遍历Map参数里的值
  7. git和GItHub的区别
  8. Ubuntu12.04LTS安装好后是空白桌面的解决步骤(更新显卡驱动)
  9. nodejs mysql 数据查询例子
  10. 《深入理解 JVM 虚拟机》 --- 看书笔记
  11. 2018-2019-2 《网络对抗技术》Kali安装 Week1 20165236
  12. 地图标绘系统V1.0测试版【申明:来源于网络】
  13. 一道面试题 包含了new的细节 和运算符的优先级 还有属性访问机制
  14. Hbase 过滤器的使用
  15. hdu 5692(dfs+线段树) Snacks
  16. StringBuffer 详解 (String系列之3)
  17. 算法-动态规划DP小记
  18. 深入了解java虚拟机(JVM) 第十一章 类的加载
  19. input实现文件上传
  20. linux内核及其模块的查询,加载,卸载 lsusb等

热门文章

  1. certification on windows and
  2. JVM相关文章和GC原理算法
  3. Thingsboard 重新启动docker-compose容器基础数据存在的问题
  4. No module named &#39;lsb_release&#39;
  5. 全新的Unity跨平台开发 IDE JetBrains Rider 2019.2 x64特别版下载
  6. [教程] Packt - Create a Game Environment with Blender and Unity by Darrin Lile
  7. 如何提高工具开发和数据分析的效率?| jupyter | Rstudio server
  8. 面邻域Polygon Neighbors
  9. 改变jupyter notebook的主题背景
  10. 漫谈企业应用架构的演变 CRM &amp; etc