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利用elaphe制作二维条形码实现代码
May 25 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
Pandas标记删除重复记录的方法
Apr 08 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
详解Python 切片语法
Jun 10 Python
selenium处理元素定位点击无效问题
Jun 12 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
python实现猜数游戏
Mar 27 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
怎么用Python识别手势数字
Jun 07 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
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
PHP网络操作函数汇总
2015/05/18 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP的反射机制实例详解
2017/03/29 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
django站点管理详解
2017/12/12 Python
Django开发中复选框用法示例
2018/03/20 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python 高阶函数简单介绍
2021/02/19 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
学校党员干部承诺书
2015/05/04 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
小学体育组工作总结
2015/08/13 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Vue全局事件总线你了解吗
2022/02/24 Vue.js