6.1、坐标轴概述
在绘制图表过程中,matplotlib会根据所绘图表的类型决定是否使用坐标系,或者显示哪种类型的坐标系。
坐标轴的结构相同,主要包括轴脊、刻度,其中刻度又可以细分为刻度线和刻度标签,刻度线又可以细分为主刻线和次刻线。坐标轴的各部分均是matplotlib类的对象:坐标轴是axis.Axis类的对象;轴脊是spines.Spines类的对象;刻度是axis.Ticker类对象。此外,常用的x轴是一个axis.Xaxis类的对象,y轴是一个axis.Yaxis类的对象。
访问spines属性后返回一个OrderedDict类的对象。OrderedDict类是dict的子类,它可以维护添加字典中的键值对的顺序。
6.2、向任意位置添加坐标轴
该函数常用参数的含义如下:
(1)参数arg支持None、4-tuple中任一取值;
(2)参数projection表示坐标轴的类型
(3)参数polar表示是否使用极坐标
(4)参数aspect表示坐标轴缩放的比例
(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(“2020080603051”)
plt.show()

6.3、定制刻度的位置和格式
6.3.1、定制刻度位置和格式
在matplotlib中,刻度线分为主刻度和次刻度线,次刻度线默认是隐藏的。matplotlib.ticker模块中提供了两个类:Locator和Formatter,分别代表刻度定位器和刻度格式器,用于指定刻度线的位置和刻度标签的格式。
1、刻度定位器
Locator是刻度定位器的基类,它派生很多子类,可以自动调整刻度的间隔、选择刻度的位置。
2、刻度格式器
Formatter是刻度格式器的基类,它派生了很多子类,可以自动调整刻度标签的格式。
6.3.2、定制刻度的样式
在matplotlib中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的,刻度线的颜色等。pyplot中可以使用tick_params()函数定制刻度的样式。
axis:表示选择操作的轴
reset:表示在处理其他参数之前均使用参数的默认值
which:表示刻度的类型
direction:表示刻度的方向
length:表示刻度线的长度
width:表示刻度线的宽度
pad:表示刻度线与刻度标签的距离
labelsize:表示刻度标签的字体大小
labelrotation:表示刻度标签旋转的角度

plt.tick_params(direction=‘in’,length=6,width=2,colors=‘orange’)
plt.title(“2020080603051”)
plt.show()

6.3.3、实例1:深圳24小时的平均风速
代码如下:
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter,HourLocator
plt.rcParams[“font.sans-serif”]=[“SimHei”]
plt.rcParams[“axes.unicode_minus”]=False
dates=[‘201910240’,‘2019102402’,‘2019102404’,‘2019102406’,‘2019102408’,
‘2019102410’,‘2019102412’,‘2019102414’,‘2019102416’,‘2019102418’,
‘2019102420’,‘2019102422’,‘201910250’]
x_date=[datetime.strptime(d,‘%Y%m%d%H’) for d in dates]
y_date=np.array([7,9,11,14,8,15,22,11,10,11,11,13,8])
fig=plt.figure()
ax=fig.add_axes((0.0,0.0,1.0,1.0))
ax.plot(x_date,y_date,‘->’,ms=8,mfc=‘#FF9900’)
ax.set_title(‘51’)
ax.set_xlabel(‘时间’)
ax.set_ylabel(‘平均速度(km/h)’)
date_fmt=DateFormatter(‘%H:%M’)
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction=‘in’,length=6,width=2,labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
plt.show()

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

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
polygon=mpathes.RegularPolygon((0.5,0.5),6,0.2,color=‘orange’)
ax=plt.axes((0.3,0.3,0.5,0.5))
ax.add_patch(polygon)
ax.axis(‘off’)
plt.title(‘51’)
plt.show()

6.4.2、隐藏部分轴脊
示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
polygon=mpathes.RegularPolygon((0.5,0.5),6,0.2,color=‘g’)
ax=plt.axes((0.3,0.3,0.5,0.5))
ax.add_patch(polygon)
ax.spines[‘top’].set_color(‘none’)
ax.spines[‘left’].set_color(‘none’)
ax.spines[‘right’].set_color(‘none’)
plt.title(‘51’)
plt.show()

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
polygon=mpathes.RegularPolygon((0.5,0.5),6,0.2,color=‘pink’)
ax=plt.axes((0.3,0.3,0.5,0.5))
ax.add_patch(polygon)
ax.spines[‘top’].set_color(‘none’)
ax.spines[‘left’].set_color(‘none’)
ax.spines[‘right’].set_color(‘none’)
ax.yaxis.set_ticks_position(‘none’)
ax.set_yticklabels([])
plt.title(‘51’)
plt.show()

6.4.3、实例2:平均风速(隐藏部分轴脊)
示例代码如下:
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter,HourLocator
plt.rcParams[“font.sans-serif”]=[“SimHei”]
plt.rcParams[“axes.unicode_minus”]=False
dates=[‘201910240’,‘2019102402’,‘2019102404’,‘2019102406’,‘2019102408’,
‘2019102410’,‘2019102412’,‘2019102414’,‘2019102416’,‘2019102418’,
‘2019102420’,‘2019102422’,‘201910250’]
x_date=[datetime.strptime(d,‘%Y%m%d%H’) for d in dates]
y_date=np.array([7,9,11,14,8,15,22,11,10,11,11,13,8])
fig=plt.figure()
ax=fig.add_axes((0.0,0.0,1.0,1.0))
ax.plot(x_date,y_date,‘->’,ms=8,mfc=‘#FF9900’)
ax.set_title(‘51’)
ax.set_xlabel(‘时间’)
ax.set_ylabel(‘平均速度(km/h)’)
date_fmt=DateFormatter(‘%H:%M’)
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction=‘in’,length=6,width=2,labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
ax.spines[‘top’].set_color(‘none’)
ax.spines[‘right’].set_color(‘none’)
plt.show()

6.5、移动轴脊
6.5.1、移动轴脊的位置
outward:表示将轴脊置于移出数据区域指定点数的位置
axes:表示将轴脊置于指定的坐标系中
data:表示将轴脊置于指定数据坐标的位置
center:值为axes
zero:值为data
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy=np.array([0.5,0.5])
polygon=mpathes.RegularPolygon(xy,6,0.2,color=‘skyblue’)
ax=plt.axes((0.3,0.3,0.5,0.5))
ax.add_patch(polygon)
ax.spines[‘top’].set_color(‘none’)
ax.spines[‘right’].set_color(‘none’)
ax.spines[‘left’].set_position((‘data’,0.5))
ax.spines[‘bottom’].set_position((‘data’,0.5))
plt.title(‘51’)
plt.show()

6.5.2、实例3:正弦与余弦曲线
正弦曲线和余弦曲线都属于周期性波浪线,他们在一个2π周期内重复出现。下面以numpy生成100个位于-2np.pi和2np.pi之间的等差数列为例,分别求等差数列中各个数值的正弦值和余弦值,并根据这些正弦值和余弦值绘制曲线。
代码如下:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams[“font.sans-serif”]=[“SimHei”]
plt.rcParams[“axes.unicode_minus”]=False
x_data=np.linspace(-2np.pi,2np.pi,100)
y_one=np.sin(x_data)
y_two=np.cos(x_data)
fig=plt.figure()
ax=fig.add_axes((0.2,0.2,0.7,0.7))
ax.plot(x_data,y_one,label=‘正弦曲线’)
ax.plot(x_data,y_two,label=‘余弦曲线’)
ax.legend()
ax.set_xlim(-2np.pi,2np.pi)
ax.set_xticks([-2np.pi,-3np.pi/2,-1np.pi,-1np.pi/2,
0,np.pi/2,np.pi,3np.pi/2,2np.pi])
ax.set_xticklabels([‘−2π-2\pi−2π’,‘−3π/2-3\pi/2−3π/2’,‘−π-\pi−π’,‘−π/2-\pi/2−π/2’,
‘000’,‘π/2\pi/2π/2’,‘/pi/2/pi/2/pi/2’,‘3π/23\pi/23π/2’,‘2π2\pi2π’,])
ax.set_yticks([-1.0,-0.5,0.0,0.5,1.0])
ax.set_yticklabels([-1.0,-0.5,0.0,0.5,1.0])
ax.spines[‘top’].set_color(‘none’)
ax.spines[‘right’].set_color(‘none’)
ax.spines[‘left’].set_position((‘data’,0.5))
ax.spines[‘bottom’].set_position((‘data’,0.5))
plt.title(‘51’)
plt.show()

第六章、坐标轴的定制相关推荐

  1. 第六章_编写定制标签

    6.1.定制标签概述 利用jsp标准动作指令访问和操作javaBeans,是首次尝试将表现代码和业务逻辑实现分离.但是,标准动作指令的功能不够强大,单独使用时,开发者经常要使用jsp页面中的java代 ...

  2. 《Head First Python》第六章--定制数据对象

    先上数据集:Head First Python 数据集 第六章的数据在第五章的基础上加了两个属性:姓名和出生日期 james2.txt James Lee,2002-3-14,2-34,3:21,2. ...

  3. ggplot2读书笔记9:第六章 标度(二)

    今天来学习第六章标度部分的最后一节~ 6.6 标度工具箱(Scales Toolbox) 除了调整标度的默认选项之外,你也可以重新创建新的标度,主要分为以下四类: 连续型位置标度:用于将整数.数值.日 ...

  4. c语言中 if(week == 6,C语言程序设计(第六章).pptx

    C语言程序设计(第六章)课案 第6章 用户定制数据类型及位运算;6.1 结构;6.1.1 概述;1.定义一个结构的一般形式为: struct 结构类型名 { 成员表 }; 成员表由若干个成员组成,每个 ...

  5. 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解

    <深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  6. 2022版Maven教程 - 第六章 单一架构案例

    2022版Maven教程 - 第六章 单一架构案例 一.创建工程,引入依赖 1.架构 ①架构的概念 ②单一架构 2.创建工程 3.引入依赖 ①搜索依赖信息的网站 [1]到哪儿找? [2]怎么选择? ② ...

  7. 【正点原子FPGA连载】第六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  8. 【正点原子FPGA连载】第十六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  9. 操作系统概念 第六章 同步

    第六章 同步 协作进程需考虑数据同步问题,本章讨论多种机制,确保共享同一逻辑地址空间的协作进程有序执行,维护数据的一致性. 6.1 背景 以之前消费者-生产者的例子来说明.使用一个整形变量counte ...

  10. 计算机视觉编程 第六章 图像聚类

    第六章 图像聚类 6.1K-means聚类 6.1.1SciPy聚类包 6.1.2图像聚类 6.1.3在主成分上可视化图像 6.1.4像素聚类 6.2层次聚类 图像聚类 6.3谱聚类 6.1K-mea ...

最新文章

  1. c# 多线程中lock用法的经典实例
  2. boost::diagnostic_information_what的用法程序
  3. 编写一个判断素数的函数,在主函数输入一个整数时,输出是否素数的信息。...
  4. HDU - 3364 Lanterns(高斯消元解方程(取模))
  5. 数据结构 -- 搜索二叉树
  6. Fedora/CentOS7/RedHat7关闭图形桌面开启文本界面
  7. 深度认识区块链---从底层原理到应用场景
  8. SQL窗口函数OVER用法整理
  9. 计算机知识博大精深,如何学好计算机之忠言逆耳
  10. 【叮咚买菜】叮咚抢菜使用教程
  11. Word文档怎样添加图片?技巧分享!怎么在Word文档中加入图片?
  12. 各类PDA及手机硬重启方法
  13. AndroidStudio打包AAR供Unity使用流程
  14. GO 常见环境变量与常用命令
  15. 如何制作动态海报?教你一招在线合成GIF海报
  16. 李嘉诚--理财--如何支配你的金钱
  17. 两台华为交换机组网互通方法
  18. 对当前软件行业的一点点感想
  19. 顶点计划换位思考汇总
  20. open-falcon 小米开源监控

热门文章

  1. Tungsten Fabric知识库丨关于OpenStack、K8s、CentOS安装问题的补充
  2. 阿里云服务器被攻击10g怎么进黑洞了?
  3. pytorch第四课
  4. 读《自控力:斯坦福大学最受欢迎心理学课程》体会
  5. Translation[VERTEBRA-FOCUSED LANDMARK DETECTION FOR SCOLIOSIS ASSESSMENT]——2021.6.18
  6. RabbitMQ - 4种Exchange类型
  7. ArcGIS Server 自定义比例尺切图
  8. Spirng的事务 方法A调用方法B,事务是否失效
  9. 冒泡排序基本思想及其复杂度分析
  10. JavaWeb会话和会话技术之Cookie