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 Django做网页
Nov 04 Python
Python的gevent框架的入门教程
Apr 29 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
Python实现登录接口的示例代码
Jul 21 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
详解Python文件修改的两种方式
Aug 22 Python
python实现TCP文件传输
Mar 20 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
Python jiaba库的使用详解
Nov 23 Python
python 多态 协议 鸭子类型详解
Nov 27 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
php数组去重的函数代码
2013/02/03 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
vue登录注册及token验证实现代码
2017/12/14 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
浅述python中深浅拷贝原理
2018/09/18 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python实现局域网内实时通信代码
2019/12/22 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
2014年党员自我评议总结
2014/09/23 职场文书
费城故事观后感
2015/06/10 职场文书
安全教育主题班会教案
2015/08/12 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫