坐标轴的定制

一,坐标轴的概述

xaxis:获取x轴。

yaxis:获取y轴。

spines:获取包含全部轴脊的字典。

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

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

参数的含义:

 (1)参数arg 支持None、4-tuple中任一取值,每种取值的含义如下。
       None :表示使用subplot(111)添加的与画布同等大小的Axes对象。
       4-tuple : 由4个浮点型元素(取值范围为0~1)组成的元组(left,bottom,width,height),前两个元素left 和bottom 分别表示坐标轴左侧和底部的边缘到画布的相对距离,用于确定坐标轴的位置;后两个元素width 和height分别表示坐标轴的宽度和高度,用于确定坐标轴的相对大小。
(2)参数projection表示坐标轴的类型,可以是None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'或'rectilinearn'中的任一取值,也可以使用自定义的类型。
  (3)参数 polar 表示是否使用极坐标,若设为True,则其作用等价于projection='polar'。
  (4)参数 aspect 表示坐标轴缩放的比例,可接收‘auto’、'equal'、num中任一取值。
  (5)参数 frame_on 表示是否绘制每个坐标轴的轴脊。
 

三,定制刻度

1.刻度定位器

Locator为刻度定位器常见的基类,它有很多子类,可以自动调整刻度的间隔,选择刻度的位置。

2.刻度格式器

Formatter是刻度格式器的基类,由它生出很多子类,可以自动调整刻度标签的样式

四,定制刻度的样式

语法:tick_params(axis='both',**kwargs)

参数的含义:

     axis : 表示选择操作的轴,可以取值为'x、'y'或"both',默认为"both'。
     reset: 若设为 True,表示在处理其他参数之前均使用参数的默认值。
     which :表示刻度的类型,可以取值为'major'、'minor'或'both',默认为'major'。
     direction :表示刻度线的方向,可以取值为'in'、'out' 或'inout'。
     length:表示刻度线的长度。width:表示刻度线的宽度。color:表示刻度线的颜色。
     pad:表示刻度线与刻度标签的距离。
     labelsize:表示刻度标签的字体大小。
     labelcolor :表示刻度标签的颜色。
     bottom,top,left,right :表示是否显示下方、上方、左侧、右侧的刻度线。
     labelbottom, labeltop, labelleft, labelright :表示是否显示下方、上方、左侧、右侧的刻度标签。
     labelrotation :表示刻度标签旋转的角度。
 

五,隐藏轴脊

1.隐藏全部轴脊

语法:axis(option,*args,**kwargs)
参数含义:

     'on':显示轴脊和刻度,等同于 True。
     'off' : 隐藏轴脊和刻度,等同于False。
     'equal':通过更改轴限设置等比例。
     'scaled':通过更改绘图框的尺寸设置等比例。
     'tight':设置足够大的限制以显示所有的数据。
     'auto':自动缩放。
 

2.隐藏部分轴脊

方法:访问spines属性获取相应的轴脊髓
# ax为坐标图
ax.spines['top'].set_color('none')     #上轴脊
ax.spines['left'].set_color('none')    #左轴脊
ax.spines['right'].set_color('none')   #右轴脊
ax.spines['under'].set_color('none')   #下轴脊

可看出隐藏轴脊髓的方法是将轴脊髓的颜色设为“None”

隐藏刻度

当你使用了隐藏轴脊后就会发现刻度还在坐标轴上,可知刻度和轴脊是分开的,可以使用set_ticks_position()方法设置刻度线的颜色为‘None’

ax.yaxis.set_ticks_position('None')
ax.set_yticklabels([])

实例:根据以下要求绘制折线图

代码如下:

# matplotlib中文网 https://www.matplotlib.org
 
# 需求一:绘制某股票一周内收盘价折线图(见运行结果展示图)
 
# 导入所需要的模块
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
 
# 0.设置中文黑体
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
 
# 1.准备数据
x_data = np.arange(1,8,1)
y_data = [44.98, 45.02, 44.32, 41.05, 42.08, 42.08, 42.08]  
 
# 2.创建画布和坐标系
fig =plt.figure()                 
 
#在距画布顶部0.2,左侧0.2的位置上添加一个宽度为0.5、高度为0.5的绘画区域
ax = fig.add_axes((0.2,0.2, 0.5,0.5))
 
ax.plot(x_data,y_data,color='purple',   #绘画折线图,线条颜色为紫色
        marker='o',                     #标记的图形
        markersize=15                   #标记图形的大小为15
       )        
ax.set_xlabel('周日期',          #绘制横坐标名为:周日期
             labelpad=15        #纵标签与横坐标的距离为15)           
 
ax.set_ylabel('收盘价($ \yen $)',       #绘制纵坐标名为:收盘价(¥)
              fontdict={'rotation':'horizontal'},   #纵标签水平放置
              labelpad=25)             #纵标签与y轴的距离为25
 
 
# 3.绘图
 
 
# 4.定制刻度
plt.xticks([1,2,3,4,5,6,7],['周一','周二','周三','周四','周五','周六','周日'])     #绘制横坐标标签
 
 
# 5.设置轴标签
# ax.xaxis.set_ticklabels(['周一','周二','周三','周四','周五','周六','周日'])        
 
ax.xaxis.set_tick_params(direction='in',length=8,width=2,labelsize=12,             #绘制横坐标刻度线(刻度线方向朝内,宽度为2,长度为8)
                         labelrotation=30                                          #x轴刻度标签旋转30°
                        )        
ax.yaxis.set_tick_params(direction ='in',length=8,width=2,labelsize=12)       #绘制横坐标刻度线(刻度线方向朝内,宽度为2,长度为8)
 
 
 
# 6.隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')      #隐藏上轴脊
ax.spines['right'].set_color('none')    #隐藏右轴脊
 
# 7.展示图表
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值