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使用urllib2获取网络资源实例讲解
Dec 02 Python
Python入门篇之数字
Oct 20 Python
为python设置socket代理的方法
Jan 14 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
python中子类调用父类函数的方法示例
Aug 18 Python
Python 高级专用类方法的实例详解
Sep 11 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
详解python算法常用技巧与内置库
Oct 17 Python
Python图像处理之图像拼接
Apr 28 Python
解决Pytorch中关于model.eval的问题
May 22 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
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
javascript demo 基本技巧
2009/12/18 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
回调函数的意义以及python实现实例
2017/06/20 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
通用C#笔试题附答案
2016/11/26 面试题
Python面试题集
2012/03/08 面试题
实习评语
2013/12/16 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
Nginx动静分离配置实现与说明
2022/04/07 Servers
Golang gRPC HTTP协议转换示例
2022/06/16 Golang