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实现的下载8000首儿歌的代码分享
Nov 21 Python
Python两个整数相除得到浮点数值的方法
Mar 18 Python
为Python程序添加图形化界面的教程
Apr 29 Python
简单介绍Python中的floor()方法
May 15 Python
Python3多线程操作简单示例
May 22 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
基于python实现聊天室程序
Jul 27 Python
用Python实现读写锁的示例代码
Nov 05 Python
详解django自定义中间件处理
Nov 21 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
Python数据可视化图实现过程详解
Jun 12 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
WHOIS类的修改版
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
使用js实现数据格式化
2014/12/03 Javascript
JSONP之我见
2015/03/24 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python爬虫之百度API调用方法
2017/06/11 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Python管理Windows服务小脚本
2018/03/12 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
利用Python检测URL状态
2019/07/31 Python
python 魔法函数实例及解析
2019/09/25 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
程序员求职信
2014/04/16 职场文书
施工安全生产承诺书
2014/05/23 职场文书
门面房租房协议书
2014/12/01 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
2015年圣诞节寄语
2015/08/17 职场文书