数据可视化——坐标轴的定制

一、坐标轴的概述

在绘制图表的过程中,matplotlib会根据所绘制图表的类型决定是否使用坐标系,或者显示哪种类型的坐标系。
坐标轴的结构相同,主要包括轴脊、刻度,其中刻度又可以细分为刻度线和刻度标签,刻度线又可以细分为主刻度线和次刻度线。坐标轴的各部分均是matplotlib类的对象:坐标轴是axis.Axis类的对象;轴脊是spines.Spine类的对象;刻度是axis.Ticker类的对象。此外,常用的x轴是一个axis.Xaxis类的对象,y轴是一个axis.Yaxis类的对象。
这些属性的介绍如下:

  • xaxis:获取x轴
  • yaxis:获取y轴
  • spines:获取包含全部轴脊的字典

访问spines属性会返回一个OrderedDict类的对象。OrderedDict类是dict的子类,它可以维护添加字典中的键值对的顺序,代码如下:

print(ax.spines)

二、向任意位置添加坐标轴

matplotlib支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区域的限制。pyplot模块可以使用axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。axes()函数的语法如下:

axes(arg=None,projection=None,polar=False,aspect,frame_on,**kwargs)

该函数常用参数含义如下:

(1)参数arg支持None、4-tuple中任一取值,每种取值的含义如下

  • None:表示使用subplot(11)添加的与画布同等大小的Axes对象。
  • 4-tuple :由4个浮点型元素(取值范围为0~ 1)组成的元组(lef, bttom, widh,
    前两个元素left和bottom分别表示坐标轴左侧和底部的边缘到画布的相对距离,用
    坐标轴的位置;后两个元素width和height分别表示坐标轴的宽度和高度,用于确定
    坐标轴的相对大小。

(2)参数projection表示坐标轴的类型,可以是None、 ‘atoff、‘hammer’、"lambert’
mollweide’ ‘polar 或’rectilinear’中的任一取值,也可以使用自定义的类型。
(3)参数polar表示是否使用极坐标,若设为True, 则其作用等价于projection=‘polar’。
(4)参数aspect表示坐标轴缩放的比例,可接收’auto’、 ‘equal’、 num中任一取值。
(5)参数frame_on表示是否绘制每个坐标轴的轴脊。
例如,代码,如下:

import matplotlib.pyplot as plt
ax=plt.axes((0.2,0.5,0.3,0.3))
ax.plot([1,2,3,4,5])
ax2=plt.axes((0.6,0.4,0.2,0.2))
ax2.plot([1,2,3,4,5])
plt.title("39")
plt.show()

运行程序,效果如下:
在这里插入图片描述

三、定制刻度

3.1、定制刻度的位置和格式
在matplotlib中,刻度线分别为主刻度线和次刻度线,次刻度线默认是隐藏的。
matplotlib.ticker模块中提供了两个类:Locator和Formatter,分别代表刻度定位器和刻度格式器,用于指定刻度线的位置和刻度标签的格式。
1.刻度定位线
Locator是刻度定位器的基类,它派生了很多子类,通过这些子类构建的刻度定位器可以调整刻度的间隔、选择刻度的位置。
常见的子类
在这里插入图片描述
与日期时间相关的locator的常见子类
在这里插入图片描述
以HourLocator为例,语法格式如下:

hour_loc= HourLocator(interval=2)

ax.xaxis.set_major_locator(hour_loc)

2.刻度格式器
Formatter是刻度格式器的基类,它派生了很多子类,通过这些子类构建的刻度格式器可以调整刻度标签的格式。Formatter的常见子类如图所示
在这里插入图片描述
3.2、定制刻度的样式
在matplotlib中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的刻度线的颜色是黑色的等。使用tick_params()函数可以定制刻度的样式。语法格式如下:

tick _params( axis='both'**kwargs)

该函数的语法格式如下:

  • axis:表示选择操作的轴,可以取值为’x’、‘y’或’both’,默认为’both’。
  • which:表示刻度的类型,可以取值为’major’、 ‘minor’或’both’,默认为’major’。direction:表示刻度线的方向,可以取值为’in’、 'out’或’inout’。
  • length:表示刻度线的长度。
  • width:表示刻度线的宽度。color:表示刻度线的颜色。
  • pad:表示刻度线与刻度标签的距离。
  • labelsize:表示刻度标签的字体大小。
  • labelcolor:表示刻度标签的颜色。
  • bottom,top,left,right:表示是否显示下方、上方、左方、右方的刻度线。
  • labelrotation:表示刻度标签旋转的角度。

代码如下:

plt.tick_params(direction='out',length=6,width=2,colors='r')
plt.title("39")
plt.show()

运行结果如下:
在这里插入图片描述

四、隐藏轴脊

坐标轴一般将轴脊作为刻度的载体,在轴脊上显示刻度标签和刻度线。matplotlib中的坐标系默认有4个轴脊,分别是上轴脊、下轴脊、左轴脊和右轴脊,其中上轴脊和右轴脊并不经常使用,大多数情况下可以将上轴脊和右轴脊隐藏。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值