Python数据可视化~图标辅助元素

发布于:2022-12-29 ⋅ 阅读:(816) ⋅ 点赞:(0)

设置坐标轴标签、刻度范围and刻度标签

设置标签

设置x轴标签

xlabel(xlabel,fontdict = None, labelpad = None, **kwargs)

xlabel:标签文本
fondict:控制文本样式的字典
labelpad:标签与坐标轴边框的距离

设置y轴标签

ylabel(ylabel,fontdict = None,labelpad = None,**kwargs)

此外,这里Axes对象可以用set_ylabel()方法改标签

实例


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,endpoint = True)
y1,y2 = np.sin(x) ,np.cos(x)
plt.plot(x,y1,x,y2)

plt.xlabel('x轴')
plt.ylabel('y轴')
plt.show()

在这里插入图片描述

设置刻度范围

xlim(left = None, right = None, emit = True, auto = False , *, xmin = None
,xmin = None)

left: 刻度取值左位数
right :右边
emit: 是否通知限制变化的观察者 默认True
auto: 是否允许自动缩放x轴默认为True
xmin:x轴刻度最小值
xmax: 最大值

设置刻度标签

xticks(ticks = None, labels = None, **kwargs

ticks:刻度的位置列表
labels:标签
此外,Axes对象可以用set_xticks() or set_yticks()方法设置

实例

#p51编程题第一题
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.arange(6)
x_labels = ['语文','数学','英语','物理','化学','生物']
x_width = 0.4

#设置y轴标签
plt.ylabel('平均成绩(分)')
male_marks = np.array([85.5,91,72,59,66,55])
female_marks = np.array([94,82,89.5,62,49,53])

lines1 = plt.bar(x,male_marks,tick_label=x_labels,width=x_width,align="center")
lines2 = plt.bar(x + x_width,female_marks,width=x_width,align="center")

plt.xticks(x+ x_width / 2, x_labels)

plt.show()

在这里插入图片描述
使用这个属性,就可以重新定位标签的位置,使得标签的位置更加好看,这里的作用就是把标签放在两个柱形图的中间

添加标题和图例

添加标题

title(label, fontdict = None, loc = 'center' , pad = None, **kwargs)

label:标题文本
fontdict: 文本样式字典
loc: 标题对齐样式,left right center 默认是center
pad: 标题与图表样式顶部的距离

Axes对象用set_title()方法添加标题

实例

plt.title('拼多多平台子类目的销售额')

在这里插入图片描述

添加图例

legend(handles, labels , loc, bbox_to_anchor, ncol, title, shadow, 
fancybox, *args, **kwargs)

handles,labels:图形识别构成的列表,还有图例项构成的列表,这两个参数应该接收相同的长度的列表,如果不一致,就会截断长的

loc:控制图例位置

字符串 说明
best 自适应
upper right 右上方
upper left 左上方
lower right 右下方
right 右方
center left 中心偏左
center right 中心偏右
lower center 中心偏下
upper center 中心偏上
center 居中

bbox_to_anchor:控制图例布局,一个包含两个数据的元组,第一个是x第二个是y
ncol: 展示图例列数 默认是1
shadow:阴影默认None
fancybox: 是否圆角边框,默认是None

实例

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = [29665,3135.4,4292.4,5240.9,5543.4,5633.8,6414.5,9308.1,10353]
labels = ['童装','奶粉辅食','孕妈专区','西湖喂养','宝宝尿裤','春夏新品','童车童床','玩具文娱','童鞋']

plt.pie(data,labels = labels,radius = 0.8,autopct = '%.1f%%')
#设置标题
plt.title('拼多多平台子类目的销售额')
#添加图例
plt.legend(labels,loc = 'upper right',bbox_to_anchor = [1.3,1.1])
plt.show()

在这里插入图片描述

显示网格

显示指定样式的网格

grid(visible = None , which =  'major', axis = 'both', **kwargs)

visible:是否显示网格
which:表示网格类型,major minor both 默认major
axis: 表示显示哪个方向的网格,both x 和 y
linewidth of lw: 网格线的宽度

plt.grid(visible = True, axis = 'y', linewidth = 0.3)

在这里插入图片描述

添加参考线 and 参考区域

添加参考线

水平参考线

axhline(y = 0, xmin = 0, xmax = 1, linestyle = '-', **kwargs)

y:水平参考线的水平线
xmin:表示水平参考线的起始位置,默认为0
xmax: 终止位置 默认1
linestyle: 表示水平参考线的类型, 默认为实线

垂直参考线

axvline(x = 0, xmin = 0, xmax = 1, linestyle = '-', **kwargs)

实例

plt.axvline(x = 0, linestyle = '--')
plt.axhline(y = 0, linestyle = '--')

在这里插入图片描述

参考区域

水平参考区域

axhspan(ymin,ymax,xmin = 0,xmax = 1 **kwargs)

ymin:水平下限
ymax:上限
xmin: 垂直跨度下限
xmax:上限

垂直参考区域

axvspan(xmin,xmax,ymin = 0,ymax = 1 **kwargs)

实例

plt.axvspan(xmin = 0.5,xmax = 2.0, alpha = 0.3)
plt.axhspan(ymin = 0.5,ymax = 1.0, alpha = 0.3)

在这里插入图片描述

添加注释文本

添加指向型注释文本

指向的,就是有图标的

annotate(s, xy, *args, **kwargs)

s:注释文本
xy:注释点的坐标位置,可接受元组
xytext: 注释文本的坐标
xycoords: xy的坐标系统 默认是‘data’ ,代表折现图使用相同的坐标系统
arrowprops:箭头的属性字典
bbox: 注释文本的边框属性字典

对于arrowprops,另外一个作者写的更为详尽

arrowprops解析

plt.annotate("最小值",xy = (-np.pi / 2,-1.0),
					 xytext = (-(np.pi / 2),-0.5),
					 arrowprops = dict(arrowstyle="->"))

在这里插入图片描述

添加无指向型注释文本

text(x,y,s,fontdict = None, withdash = <deprecated parameter>, **kwargs)

x,y注释文本位置
s:内容
fontdict:控制文本的字典
bbox: 边框属性字典
horizontalalignment or ha :水平对齐方式, center right left
verticalalignment o va : 垂直对齐方式, center top bottom baseline center_baseline

实例

plt.text(3.1,0.1,"y=sin(x)",bbox = dict(alpha = 0.2))

在这里插入图片描述

添加表格

table(cellText, cellColours , cellLoc= 'right', colWidths = None
,rowLabels = None, rowColours = None, rowLoc = 'left',  colLabels = None,
colColours = None, colLoc = 'center', loc = 'bottom', bbox = None,
edges = 'closed', **kwargs)

cellTest:单元格数据,是一个二维列表
cellColours: 单元格的背景颜色
cellLoc: 文本对齐方式, left right center 默认right
colWidth: 每列的宽
rowLabels: 行标题的文本
rowColors:行标题背景颜色
rowLoc:标题的对齐方式
colLabels: 表示列标题的文本
colLoc: 列标题的对齐方式
loc:表格与绘图区域的对齐方式

此外,Axes对象可以使用table方法为图表添加表格

实例

plt.table(cellText=[[6,6,6],[8,8,8]],
          colWidths=[0.1] * 3,
          rowLabels=['第一行','第二行'],
          colLabels=['第一列','第二列','第三列'],loc = 'lower right')

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看