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类的多重继承问题深入分析
Nov 09 Python
Python实现的简单hangman游戏实例
Jun 28 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
mac系统安装Python3初体验
Jan 02 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
儿童学习python的一些小技巧
May 27 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
python中time.ctime()实例用法
Feb 03 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
vue键盘事件点击事件加native操作
2020/07/27 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python绘制多个子图的实例
2019/07/07 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
python palywright库基本使用
2021/01/21 Python
Ruby如何实现动态方法调用
2012/11/18 面试题
机关班子查摆问题及整改措施
2014/10/28 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
会计岗位工作总结
2015/08/12 职场文书
mysql优化
2021/04/06 MySQL
Python requests用法和django后台处理详解
2022/03/19 Python