matplotlib笔记3
关于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()
matplotlib笔记3的更多相关文章
- Python matplotlib笔记
可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...
- matplotlib笔记2
颜色和样式 八种内建默认颜色缩写b:blue g:green r:red c:cyan m:magenta y:yellow k:black w:white其它颜色表示方法可以参照百度给的值https ...
- matplotlib笔记1
散点图-scatter 散点图显示两组数据的值,每个点的坐标位置由变量的值决定由一组不连接的点完成,用于观察两种变量的相关 import numpy as np import matplotlib.p ...
- matplotlib笔记——legend用法
rates = [0.01, 0.001, 0.0001] models = {} costs = np.array([[0.7, 0.9, 0.4, 0.6, 0.4, 0.3, 0.2, 0.1] ...
- Google TensorFlow深度学习笔记
Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...
- Matplotlib:mpl_toolkits.mplot3d工具包
简介 mpl_toolkits.mplot3d是Matplotlib里面专门用来画三维图的工具包,官方指南请点击此处<mplot3d tutorial> 使用 导入 使用from mpl_ ...
- Matplotlib 学习笔记
注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...
- Matplotlib学习笔记(二)
原 Matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .car ...
- Matplotlib学习笔记(一)
原 matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .ca ...
随机推荐
- java 静态数组 和非静态数组的区别
区别:1,数组创建时间不同,静态的是一定义出来就创建了,动态的则是定义时不创建,使用时才创建,一定意义上节省了内存空间.2,使用场景不同,一开始就知道数组长度的使用静态初始化,反之,动态初始化. 静态 ...
- Spring boot RSA 文件加密解密
github项目地址 rsa_demo ##测试 加密D:/hello/test.pdf 文件,生成加密后的文件 testNeedDecode.pdf 对testNeedDecode.pdf 文件进行 ...
- C平衡二叉树(AVL)创建和删除
AVL是最先发明的自平衡二叉查找树算法.在AVL中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树,n个结点的AVL树最大深度约1.44log2n.查找.插入和删除在平均和最坏情况下 ...
- Zygote启动及其作用
目录 1.Zygote简介 2.Zygote进程如何启动 2.1 init.zygote64_32.rc文件 2.2 查看ps信息 2.3 启动 3.Zygote作用 3.1 启动system_ser ...
- Class as decorator in python
Class as decorator in python . https://www.geeksforgeeks.org/class-as-decorator-in-python/ http://co ...
- python 设计模式之组合模式Composite Pattern
#引入一 文件夹对我们来说很熟悉,文件夹里面可以包含文件夹,也可以包含文件. 那么文件夹是个容器,文件夹里面的文件夹也是个容器,文件夹里面的文件是对象. 这是一个树形结构 咱们生活工作中常用的一种结构 ...
- DialogFragment: DialogFragment的一些理解
Android 自3.0版本引入了DialogFragment这个类,并推荐开发者使用这个类替代之前经常使用的Dialog类,那么DialogFragment相对于之前的Dialog究竟有什么优势呢? ...
- vmware配置双网卡
最近在学习使用iptables做网关服务器,即SNAT设置 我们的宿主机有两块网卡,地址分别是: 192.168.6.108/24 192.168.66.119/24 我们的目标是在虚拟机VMware ...
- 【转载】 我的Machine Learning学习之路
原文地址: https://www.cnblogs.com/steven-yang/p/5857964.html ------------------------------------------- ...
- 读取Excel,通过Testng完成数据驱动
背景 数据驱动是我们写自动化脚本非常常用的技术,而Testng中数据驱动常用的注解是 @DataProvider,但是这个方法必须返回一个Object[][].最近常有学生问起,如果通过外部文件作为数 ...