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 18 Python
详解Python Socket网络编程
Jan 05 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
python select.select模块通信全过程解析
Sep 20 Python
python实现外卖信息管理系统
Jan 11 Python
对numpy中向量式三目运算符详解
Oct 31 Python
kafka-python批量发送数据的实例
Dec 27 Python
python实现网页自动签到功能
Jan 21 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
python sqlite的Row对象操作示例
Sep 11 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 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中的string类型使用说明
2010/07/27 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
Python使用OpenCV进行标定
2018/05/08 Python
Python3模拟登录操作实例分析
2019/03/12 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
python高级特性简介
2020/08/13 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
大学生学习生活的自我评价
2013/11/01 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
红旗方阵解说词
2014/02/12 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
环卫工作个人总结
2015/03/04 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
毕业生学校组织意见
2015/06/04 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
Python编程super应用场景及示例解析
2021/10/05 Python