本篇写python中画图的操作,主要设计画图,坐标轴设置,多条线。
1. 关于画图和Matplotlib
2. 简单的使用
3. figure对象
4. legend图例
5. 在图片上添加标注annotation
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,可以生成直线曲线图,直方图,功率谱,条形图,错误图,散点图等。
主要有自变量的生成方法,函数式的表达,成图展示三个方面。
其中成图还可以设置线性,颜色,线宽度等,用来区别不同的函数线,方法如下:
示例1:
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-1,1,50) y=x**2 plt.plot(x,y) plt.show()
示例2:
设置线条格式有以下参数,color:颜色,linewidth:线条宽度,linestyle:线条类型,marker:数据点标识符,markersize:标识符大小。
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-1,1,10) y1=x*2 y2=x**2 plt.plot(x,y1,color='r',linewidth=2,linestyle='--',marker='d',markersize=12) plt.plot(x,y2,color='b',linewidth=3,linestyle=':',marker='p',markersize=12) plt.show()
注意:
如果不使用plt.show()图表是不会显示出来的,因为你可能要对图表进行多种描述,所以通过显式调用show()可以避免不必要的错误。
在matplotlib中,整个图标为一个figure对象,即每一个弹出的小窗口就是一个figure对象。如果我们需要输出多张图,我们可以在一个代码中创建多个figure对象,也就是多个小窗口,每个小窗口输出一个图。
每创建一个figure对象,就plt.plot()一个图,plot跟在哪个figure后面,就会显示在那个图上:
示例:
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-1,1,50) y1=x*2 y2=x**2 plt.figure() plt.xlim(-2,2) plt.ylim(-10,10) plt.plot(x,y1,color='r',linewidth=2,linestyle='--') plt.figure() plt.xlabel('xlable') plt.ylabel('ylabel') plt.plot(x,y2,color='b',linewidth=3,linestyle=':') plt.show()
同时还可以使用plt.xlabel( string )和plt.xlim( a, b )来给坐标轴命名以及设置横纵坐标轴名称。
我们也可能在一张图中画多条线,然后此时我们可以用不同线型,颜色和粗细去区分它们,还可以添加legend图例来区分它们。
很多时候我们会在同一个图里添加多条线进行对比,那么怎么区分多条线呢?这时用legend来在表格右上方给不同的线条做说明。
同时使用plt.title()给图标命名:
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-1,1,50) y1=x**2 y2=x*2 plt.plot(x,y1,color='green',linewidth=2.0,linestyle='-',label='linear line') plt.plot(x,y2,color='red',linewidth=1.0,linestyle=':',label='square line') # 简单的设置legend(设置位置) # 位置在右上角 plt.legend(loc='upper right') plt.title('practice picture') plt.show() # 'best' : 0, # 'upper right' : 1, # 'upper left' : 2, # 'lower left' : 3, # 'lower right' : 4, # 'right' : 5, # 'center left' : 6, # 'center right' : 7, # 'lower center' : 8, # 'upper center' : 9
很多时候我们需要在图上某个特定的地方,或者对某个特定的点做标注说明。
以及对坐标轴进行对应的移动坐标轴设置。见博客:
https://blog.csdn.net/gaotihong/article/details/80983937 https://blog.csdn.net/sinat_38816924/article/details/106169996
懒得写了,其他的见上面这两篇博客。