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使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
python实现微信远程控制电脑
Feb 22 Python
numpy中矩阵合并的实例
Jun 15 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
Python如何访问字符串中的值
Feb 09 Python
python json.dumps中文乱码问题解决
Apr 01 Python
pytorch 查看cuda 版本方式
Jun 23 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
python opencv pytesseract 验证码识别的实现
Aug 28 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
利用python修改json文件的value方法
2018/12/31 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
草船借箭教学反思
2014/02/03 职场文书
2014学年自我鉴定
2014/02/23 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
人事任命通知书
2015/04/21 职场文书