python使用Matplotlib改变坐标轴的默认位置


Posted in Python onOctober 18, 2019

使用Matplotlib绘制的图表的默认坐标轴是在左下角的,这样对于一些函数的显示不是非常方便,要改变坐标轴的默认显示方式主要要使用gca()方法

plt.gca()表示 Get current axis,使用这个方法我们可以获得整张图表的坐标对象,这样我们就可以对坐标进行处理了,像移动位置,设置颜色之类的,类似plt.gcf()这个是 Get current figure 即获得当前图表的图像,对图像进行处理。

我们可以定义一个变量接收这个值:

ax = plt.gca()

接下来还要了解一个方法 :spine() 这个单词的意思是脊梁,我的理解就是包围图表的线条,例如:

python使用Matplotlib改变坐标轴的默认位置

其余的两条边也是一样的道理,那么,如果我们要移动坐标到中心点,那么我们可以移动其中的两条边,并隐藏两条边即可:

ax.spines[‘right'].set_color(‘none')
ax.spines[‘top'].set_color(‘none')

ax.xaxis.set_ticks_position(‘bottom')
ax.yaxis.set_ticks_position(‘left')

这时候做坐标轴只剩下两条线,接下来就是指定x轴以及y轴的绑定:

ax.spines[‘bottom'].set_position((‘data', 0))
ax.spines[‘left'].set_position((‘data', 0))

这样写的结果是将x,y轴绑定到特定位置,至于这两个的值,其实试几次就好理解了,上面的这种情况是坐标轴的交点是(0, 0),如果改成:

ax.spines[‘bottom'].set_position((‘data', 0))
ax.spines[‘left'].set_position((‘data', 1))

这样两个坐标轴的交点就是(1,0).

完整代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-5, 5, 100)
y1 = 0.5 * x
y2 = x * x

plt.figure()
plt.xlabel('X axis...')
plt.ylabel('Y axis...') #设置坐标轴的文字标签

ax = plt.gca() # get current axis 获得坐标轴对象

ax.spines['right'].set_color('none') 
ax.spines['top'].set_color('none') # 将右边 上边的两条边颜色设置为空 其实就相当于抹掉这两条边

ax.xaxis.set_ticks_position('bottom') 
ax.yaxis.set_ticks_position('left') # 指定下边的边作为 x 轴 指定左边的边为 y 轴

ax.spines['bottom'].set_position(('data', 0)) #指定 data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['left'].set_position(('data', 0))

plt.plot(x, y1, linestyle='--')
plt.plot(x, y2)

plt.show()

效果如下:

python使用Matplotlib改变坐标轴的默认位置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python入门篇之编程习惯与特点
Oct 17 Python
python单元测试unittest实例详解
May 11 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Python函数的默认参数设计示例详解
Dec 01 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
没编程基础可以学python吗
Jun 17 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
python 实现的车牌识别项目
Jan 25 Python
使用Pytorch训练two-head网络的操作
May 28 Python
理解python中装饰器的作用
Jul 21 Python
Python实现抖音热搜定时爬取功能
Mar 16 Python
python调用Matplotlib绘制分布点图
Oct 18 #Python
Python 异常处理Ⅳ过程图解
Oct 18 #Python
python库matplotlib绘制坐标图
Oct 18 #Python
python实现WebSocket服务端过程解析
Oct 18 #Python
django实现支付宝支付实例讲解
Oct 17 #Python
python通过实例讲解反射机制
Oct 17 #Python
python集合常见运算案例解析
Oct 17 #Python
You might like
PHP批量生成缩略图的代码
2008/07/19 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
JS设置获取cookies的方法
2014/01/26 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
Python中的模块和包概念介绍
2015/04/13 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
opencv实现简单人脸识别
2021/02/19 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
考试违纪检讨书
2014/02/02 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
详解Java实现数据结构之并查集
2021/06/23 Java/Android
试了下Golang实现try catch的方法
2021/07/01 Golang