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实现多线程抓取知乎用户
Dec 12 Python
Python实现识别图片内容的方法分析
Jul 11 Python
python多进程实现文件下载传输功能
Jul 28 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
python同时遍历两个list用法说明
May 02 Python
python新手学习可变和不可变对象
Jun 11 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 Python
Python中openpyxl实现vlookup函数的实例
Oct 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
用php将任何格式视频转为flv的代码
2009/09/03 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
深入Node TCP模块的理解
2019/03/13 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python程序中的观察者模式结构编写示例
2016/05/27 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
美国购车网站:TrueCar
2016/10/19 全球购物
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
移动通信专业自荐信范文
2013/11/12 职场文书
党员违纪检讨书
2014/02/18 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
公司给客户的感谢信
2015/01/23 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
微信小程序基础教程之echart的使用
2021/06/01 Javascript
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
浅谈JavaScript作用域
2021/12/06 Javascript
MySQL七大JOIN的具体使用
2022/02/28 MySQL