1.图例:legend
- 参数fontsize:图例大小
- 参数loc:图例位置(best,upper right,upper left,lower left,lower right,right,center left,center right,lower center,upper center,center)
- 参数ncol:显示成几列,默认一列
- 参数bbox_to_anchor(x,y,width,height):图例具体位置
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(6,4))
x = np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x),label='Sin')
plt.plot(x,np.cos(x),label='Cos')
#图例
plt.legend(
fontsize=10,
loc='center',
ncol=2,
bbox_to_anchor=[0,1,1,0.2]
)
2.线条属性
- 颜色:c(color)
- 样式:ls(line style)
- 宽度:lw(line width)
- 透明度:alpha(0~1)
- 标签:label
- 标记:marker
- 标记的背景颜色:mfc(marker face color)
- 标记大小:markersize
- 标记(点)的边缘颜色:markered
- 标记(点)的边缘宽度:markeredgewidth
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(6,4))
x = np.linspace(0,2*np.pi,20)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y1,c='r',marker='o',ls='--',lw=1,label='sinx',mfc='y')
plt.plot(x,y2,c='b',marker='*',ls='-',lw=2,label='cosx',mfc='w',markersize=10)
plt.plot(x,y1-y2,c='y',marker='^',ls='-',lw=3,label='sinx-cosx',mfc='b',markersize=10,alpha=0.5)
plt.plot(x,y1+y2,c='orange',marker='>',ls='-.',lw=4,label='sinx+cosx',mfc='y',markersize=10,markeredgecolor='green',markeredgewidth=2)
plt.legend()
3. 坐标轴
- 坐标轴刻度
- xticks
- yticks
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(0,10)
y = np.sin(x)
plt.plot(x,y)
plt.xticks(np.arange(0,11,1),fontsize=10,c='r')
plt.yticks([-1,0,1],labels=['min','0','max'],fontsize=10,c='b',ha='right') #ha:水平对齐方式
plt.show()
- 坐标轴范围
- xlim
- ylim
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y,c='r')
plt.xlim(-2,8)
plt.ylim(-2,2)
- 坐标轴配置(axis)
- off:不显示坐标轴
- equal:让x轴和y轴刻度距离相同
- scaled:自动缩放坐标轴和图片匹配
- tight:紧凑型自动适配图片
- square:让画布呈现正方形
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y,c='r')
plt.axis([-2,8,-2,2])
# 以square为例
plt.axis('square')
plt.show()
4.标题和网格
- title
- grid
- 参数ls,lw,c同之前
- 参数axis:选择显示哪个网格线
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(0,10)
y = np.sin(x)
plt.plot(x,y)
#图的标题
plt.title('sin Picture',fontsize=20,loc='left')
#父标题,参数y为位置
plt.suptitle('title',y=1.1,fontsize=25)
#网格线
plt.grid(ls='-.',lw=0.5,c='r',axis='x')
5.标签
- xlabel、ylabel
- 参数fontsize:字体大小
- 参数rotation:旋转角度,x轴默认0度,y轴默认90度
- 参数horizontalalignment:对齐方式
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(0,10)
y = np.sin(x)
plt.plot(x,y)
#坐标轴的标签
plt.xlabel('y=sin(x)',fontsize=20,rotation=45,horizontalalignment='left')
plt.ylabel('y=sin(x)',fontsize=20,rotation=45,horizontalalignment='right')
6.文本
- text
- 参数x:文本x轴坐标值
- 参数y:文本y轴坐标值
- 参数s:文本内容
- 参数fontsize:文本字体大小
- 参数color:文本颜色
- 参数ha:文本水平对齐方式
- 参数va:文本垂直对齐方式
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(1,10,10)
y = np.array([60,30,20,90,40,60,50,80,70,30])
plt.plot(x,y,ls='--',marker='o')
for a,b in zip(x,y):
plt.text(
x=a,
y=b,
s=b,
fontsize=10,
color='r',
ha='center',
va='center'
)
7.注释
- annotate
- 参数text:注释内容
- 参数xy:需要注释数据点的坐标值,即箭头指向的位置
- 参数xytext:注释内容的位置
- 参数arrowprops:箭头样式
- 参数width:箭头线的宽度
- 参数headwidth:箭头头部的宽度
- 参数facecolor:箭头的背景颜色
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3))
x = np.linspace(1,10,10)
y = np.array([60,30,20,90,40,60,50,80,70,30])
plt.plot(x,y,ls='--',marker='o')
plt.annotate(
text='Max Value',
xy=(4,90),
xytext=(1,80),
arrowprops={
'width':2,
'headwidth':8,
'facecolor':'red'
}
)
8. 图片保存
- savefig
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(5,3))
x = np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))
#方式1
plt.savefig('sincos.png')
#方式2
fig.savefig(
fname='sincos2.png', #文件名称,扩展名支持:png,jpg
dpi=100, #保存图片的像素密度
facecolor='pink', #背景颜色
pad_inches=1, #内边距
)
知识点为听课总结笔记,课程为B站“千锋教育python数据可视化Matplotlib绘图教程,Matplotlib柱状图|Matplotlib动态图|Matplotlib散点图”:千锋教育python数据可视化Matplotlib绘图教程,Matplotlib柱状图|Matplotlib动态图|Matplotlib散点图_哔哩哔哩_bilibili