Matplotlib中图表辅助元素

图表常用的辅助元素

图表的辅助元素是指除了根据数据绘制的图形之外的元素,常用的辅助元素包括坐标轴、标题、图例、网格、参考线、参考区域、注释文本和表格,它们都可以对图形进行补充说明。
在这里插入图片描述

坐标轴

坐标轴是由刻度标签、刻度线、轴脊和坐标轴标签组成。
在这里插入图片描述

xlabel()函数

语法:

xlabel(xlabel)
参数解释
xlabelx轴标签文本

案例

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1.y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.show()

效果展示:
在这里插入图片描述

xlim()函数

语法:

xlim(left,right)
参数解释
left坐标轴刻度取值区间的左端点
right坐标轴刻度取值区间的右端点

xticks()函数

语法:

xticks(ticks=None,labels=None)
参数解释
ticks刻度显示的位置列表
labels位置刻度的标签列表

案例

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$','$\pi/2$',r'$\pi$'])
plt.show()

效果展示:
在这里插入图片描述

案例-2019年中国电影票房排行榜

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
labels = ['哪吒之魔童降世','流浪地球'.'复仇者联盟4','疯狂的外星人','飞驰人生','烈火英雄']
bar_width = [48.57,46.18,42.05,21.83,17.03,16.70]
y_data = range(len(labels))
plt.barh(y_data,bar_width,height=0.2,color='orange')
plt.xlabel("总票房(亿元)")
plt.ylabel("电影名称")
plt.yticks(y_data,labels)
plt.show()

效果展示:
在这里插入图片描述

标题

图表标题

图表标题:图标名称

title()函数

语法:

title(label)
参数解释
label标题的文本

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦和余弦曲线')
plt.show()

效果展示:
在这里插入图片描述

图例

图例是一个列举的各组图形数据标识方式的方框图,它由图例标识和图例项两部分组成,其中图例标识是代表各组图形的图案;图例项是与图例标识对应的名称。

legend()函数

语法:

legend(handles,labels,loc,bbox_to_anchor)
参数解释
handles图形标识列表
labels图例项列表
loc位置字符串:upper right,lower left, center left
bbox_to_anchor位置元组

案例

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦'.'余弦'])
plt.show()

效果展示:
在这里插入图片描述

网格

网格是从刻度线开始延伸,贯穿至整个绘图区域的辅助线条,它能帮助人们轻松地查看图形的数值,网格可以分为垂直网格和水平网格。

grid()函数

语法:

grid(axis = 'both',linewidth)
参数解释
axis网格方向
linewidth网格线宽度

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'])
plt.grid(axis='y')
plt.show()

效果展示:
在这里插入图片描述

参考线

参考线是一条或多条贯穿绘图区域的线条,用于为绘图区域中图形数据之间的比较提供参考依据,比如目标线、平均线、预算线等。

axhline()函数

语法:

axhline(y=0,xmin=0,xmax=1,linestyle='-')
参数解释
y水平参考线的纵坐标
xmin水平参考线的起始位置,默认为0
xmax水平参考线的终止位置,默认为1
linestyle水平参考线的类型,默认为实线

axvline()函数

语法:

axhline(x=0,ymin=0,ymax=1,linestyle='-')
参数解释
x垂直参考线的横坐标
ymin垂直参考线的起始位置,默认为0
ymax垂直参考线的终止位置,默认为1
linestyle垂直参考线的类型,默认为实线

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'])
plt.grid(axis='y')
plt.axhline(y=0.5,linestyle='--')
plt.axvline(x=0.5,linestyle=':')
plt.show()

效果展示:
在这里插入图片描述

参考区域

axhspan()函数

语法:

axhspan(ymin,ymax,xmin=0,xmax=1)
参数解释
ymin水平跨度的下限
ymax水平跨度的上限
xmin垂直跨度的下限,是比例数值,默认为0。
xmax垂直跨度的上限,是比例数值,默认为1。

axhspan()函数

语法:

axvspan(xmin,xmax,ymin=0,ymax=1)
参数解释
xmin水平跨度的下限
xmax水平跨度的上限
ymin垂直跨度的下限,是比例数值,默认为0。
ymax垂直跨度的上限,是比例数值,默认为1。

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'])
plt.grid(axis='y')
plt.axhline(y=0.5,linestyle='--')
plt.axvline(x=0.5,linestyle=':')
plt.axhspan(ymin=0.5,ymax=1,alpha=0.3)
plt.axvspan(xmin=0.5,xmax=2,alpha=0.3)
plt.show()

效果展示:
在这里插入图片描述

注释

注释文本能够对图形进行简短描述,有助于用户理解图表。
在这里插入图片描述

annotate函数

语法:

annotate(s,xy,xytext,arrowprops)
参数解释
s注释文本内容
xy被注释的点的坐标位置,接受元组(x,y)
xytext注释文本所在的坐标位置,接受元组(x,y)
arrowprops指示箭头的属性字典

键arrowstyle代表箭头类型:
在这里插入图片描述

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'])
plt.grid(axis='y')
plt.axhline(y=0.5,linestyle='--')
plt.axvline(x=0.5,linestyle=':')
plt.axhspan(ymin=0.5,ymax=1,alpha=0.3)
plt.axvspan(xmin=0.5,xmax=2,alpha=0.3)
plt.annotate('最小值',xy=(-np.pi/2,-1.0),xytext=(-np.pi/2,-0.5),arrowprops=dict(arrowstyle='->'))
plt.show()

效果展示:
在这里插入图片描述

text函数

语法:

text(x,y,s,ha,va)
参数解释
x,y注释文本位置
s注释文本的内容
ha水平对齐方式:‘center’、‘right’、‘left’
va垂直对齐方式:‘center’、‘top’、‘bottom’

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'])
plt.grid(axis='y')
plt.axhline(y=0.5,linestyle='--')
plt.axvline(x=0.5,linestyle=':')
plt.axhspan(ymin=0.5,ymax=1,alpha=0.3)
plt.axvspan(xmin=0.5,xmax=2,alpha=0.3)
plt.annotate('最小值',xy=(-np.pi/2,-1.0),xytext=(-np.pi/2,-0.5),arrowprops=dict(arrowstyle='->'))
plt.text(3.15,0.15,'y=sin(x)',bbox=dict(alpha=0.2))
plt.show()

2013-2019财年阿里巴巴淘宝和天猫平台的GMV

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1,8)
y = np.array([10770,16780,24440,30920,37670,48200,57270])
bar_rects = plt.bar(x,y,tick_label=['FY2013','FY2014','FY2015','FY2016','FY2017','FY2018','FY2019'],width=0.5)

def autolabel(rects):
	for rect in rects:
		height = rect.get_height()
		plt.text(rect.get_x()+rect.get_width()/2,height+300,s='{}'.format(height),ha='center',va='bottom')
autolabel(bar_rects)
plt.ylabel('成交总额(亿元)')
plt.show()

效果展示:
在这里插入图片描述

表格

table函数

语法:

table(one,ceIILoc=right,rowLabels=None,coILabels=None)
参数解释
cellText表格单元格中的数据,是一个二维列表
ceIILoc单元格文本的对齐方式,支持’left’、‘center’、'right’三种
rowLabels表示行标题的文本
coILabels表示列标题的文本

案例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi$',r'$0$','$\pi/2$',r'$\pi$'])
plt.title('正弦余弦曲线')
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'])
plt.grid(axis='y')
plt.axhline(y=0.5,linestyle='--')
plt.axvline(x=0.5,linestyle=':')
plt.axhspan(ymin=0.5,ymax=1,alpha=0.3)
plt.axvspan(xmin=0.5,xmax=2,alpha=0.3)
plt.annotate('最小值',xy=(-np.pi/2,-1.0),xytext=(-np.pi/2,-0.5),arrowprops=dict(arrowstyle='->'))
plt.text(3.15,0.15,'y=sin(x)',bbox=dict(alpha=0.2))
plt.table(cellText=[[0,-1],[-1,0]],rowLabels=['正弦','余弦'],coilabels=['$-\pi$','$-\pi/2$'],loc='lower right')
plt.show()

效果展示:
在这里插入图片描述

总结

Python是非常强大的数据计算工具,其Matplotlib包封装了非常强大的图像编辑功能,下面是各种图形注释的表达式:

辅助元素函数
x轴标签文本xlabel(xlabel)
x轴坐标刻度xlim(left,right)
x轴坐标元素点显示xticks(ticks=None,labels=None)
图像标题title(label)
图例legend(handles,labels,loc,bbox_to_anchor)
网格grid(axis = ‘both’,linewidth)
水平参考线axhline(y=0,xmin=0,xmax=1,linestyle=’-’)
水平参考区域axhspan(ymin,ymax,xmin=0,xmax=1)
文本注释annotate(s,xy,xytext,arrowprops)
无指向文本注释text(x,y,s,ha,va)
表格table(one,ceIILoc=right,rowLabels=None,coILabels=None)
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hawzhangy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值