Matplotlib可视化:绘图基本操作(一)
程序员文章站
2024-01-14 11:27:22
...
Matplotlib官网
目录
3. 不同的线条类型linestyle &表示颜色color的字符参数:
5. 对图的操作还可以用plt.setp(),可以先作图,再更改布局风格
1. 先导入库
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline #这行代码可以使我们直接在jupyter notebook中直接作图,否则就要加plt.show()
2.最基本的一个图
x = np.linspace(-10,10)
y = np.sin(x)
plt.plot(x,y,linewidth = 3.0) #linewidth指定线条的宽度;
plt.plot(x,y,color='b',linestyle=':',marker = 'o',markerfacecolor='r',markersize = 10)
#marker是标记/点号的形状,markerfacecolor是marker的填充色,markersize是其大小
plt.xlabel('xlabel',fontsize = 16) #x轴标签(标签名,字体大小)
plt.ylabel('ylabel')
3. 不同的线条类型linestyle &表示颜色color的字符参数:
import matplotlib.pyplot as plt
plt.plot(x,y,format_string,**kwargs) #x轴数据,y轴数据,format_string控制曲线的格式字串
format_string 由颜色字符,风格字符,和标记字符
函数的参数里的(*args, *kargs)都是可变参数,如果同时使用这两个参数,*args要在**kwargs之前,
- *args表示无名参数,是一个元组tuple
- **kwargs是键值参数,相当于一个字典,
通常线型和颜色可以组合在一起用单引号表示。
#在一幅图中绘制多条线的两种方法
t = np.arange(0,10,0.5)
plt.plot(t,t*2,'r--')
plt.plot(t,t**2,'bs')
plt.plot(t,t**3,'go')
#方法二
plt.plot(t,t*2,'r--',
t,t**2,'bs',
t,t**3,'go')
比如你输入参数为:(1,2,3,4,k,a=1,b=2,c=3),*args=(1,2,3,4,k),**kwargs={'a':'1,'b':2,'c':3}
不能是:a=1,b=2,c=3,1,2,3,4,k,这样会出现语法错误提示:
SyntaxError:non-keyword arg after keyword arg
*kwargs 还可以创建字典:【相当于Python自带的dic() 】
def dicmake(**kwargs):
return kwargs
5. 对图的操作还可以用plt.setp(),可以先作图,再更改布局风格
line = plt.plot(x,y) #alpha为透明度
plt.setp(line,color='r',linewidth = 2.0, alpha = 0.4)
6. 子图 .subplot()
plt.subplot(mnx)表示绘制m行n列布局的第x个子图 ,x可从1取到m*n;子图的编号从左到右、从上到下,
也就是第一个图在最左上角,第m*n个图在最右下角。
# 224 表示一会要画的图是2行一列的 最后一个4表示的是子图当中的第4个图
plt.subplot(224)
plt.plot(x,y,color='r')
# 212 表示一会要画的图是2行一列的 最后一个1表示的是子图当中的第2个图
plt.subplot(212)
plt.plot(x,y,color='b')
# 121 表示一会要画的图是1行2列的 最后一个1表示的是子图当中的第1个图
plt.subplot(121)
plt.plot(x,y,color='r')
7. 给图上加上注释
plt.plot(x,y,color='b',linestyle=':',marker = 'o',markerfacecolor='r',markersize = 10) #标记marker的样式
plt.xlabel('x:---') #轴标签
plt.ylabel('y:---')
plt.title('Graph Title:---')
plt.text(0,0,'texture') #在(x,y)=(0,0)处加文字
plt.grid(True) #增加网格线
plt.annotate('annotation',xy=(-5,0),xytext=(-2,0.3),arrowprops = dict(facecolor='red',shrink=0.05,headlength= 20,headwidth = 20))
'''
annotate第一个参数为注释内容,
xy 是箭头指向的终点
xytext 为注释内容所在的位置
arrowprops为箭头样式,用字典dict来指定箭头长度headlength,箭头宽度headwidth
facecolor箭头颜色,shrink 箭头长短
'''
8. 风格设置
在 jupyter notebook 中输入 plt.style.available 就可以查看以下可用的风格:
['dark_background', 'seaborn-talk', 'seaborn-bright', 'seaborn-ticks', 'bmh', 'ggplot',
'seaborn-darkgrid', 'classic', 'fivethirtyeight', 'seaborn-deep',
'seaborn-colorblind', 'seaborn-muted', 'seaborn-pastel', 'seaborn-notebook',
'seaborn-paper', 'seaborn-dark-palette', 'seaborn-whitegrid', 'seaborn-white',
'grayscale', 'seaborn-dark', 'seaborn-poster']
再 plt.style.use()进行风格设置
#风格设置
plt.style.use('bmh')
plt.plot(x,y)
#可以多种风格混搭
plt.style.use(['ggplot','bmh'])
plt.plot(x,y)
plt.xkcd() 生成不规则边界的图形
x = np.linspace(-10,10)
y = np.sin(x)
plt.xkcd()
plt.plot(x,y)
matplotlib cheatsheet