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中实现迭代器(iterator)的方法示例
Jan 19 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
python 除法保留两位小数点的方法
Jul 16 Python
Python3匿名函数用法示例
Jul 25 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
python进行文件对比的方法
Dec 24 Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
基于PyQT实现区分左键双击和单击
May 19 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 Python
Python中的 No Module named ***问题及解决
Jul 23 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语法(3)
2006/10/09 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
js资料toString 方法
2007/03/13 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
python统计一个文本中重复行数的方法
2014/11/19 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
python爬虫实例详解
2018/06/19 Python
Python列表切片操作实例总结
2019/02/19 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
工商管理系学生的自我评价分享
2013/11/29 职场文书
宿舍违规检讨书
2014/01/12 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
毕业典礼邀请函
2015/01/31 职场文书
工会经费申请报告
2015/05/15 职场文书
法律讲堂观后感
2015/06/11 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server