python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式


Posted in Python onMay 16, 2020

用matplotlib画二维图像时,默认情况下的横坐标和纵坐标显示的值有时达不到自己的需求,需要借助xticks()和yticks()分别对横坐标x-axis和纵坐标y-axis进行设置。

import numpy as np
import matplotlib.pyplot as plt
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.show()

x坐标和y坐标都表示1到12的整数,不进行坐标设置时,执行效果为:

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

此时的x轴和y轴都是只显示偶数,其它的奇数未显示,这样在展示实验效果或放入文章中都会影响其可读性。

为了设置坐标轴的值,增加其可读性,有多种方法。这里介绍的是matplotlib的函数xticks()和yticks()。

参考文档:xticks()函数介绍 yticks()函数介绍

xticks()中有3个参数:

xticks(locs, [labels], **kwargs) # Set locations and labels

locs参数为数组参数(array_like, optional),表示x-axis的刻度线显示标注的地方,即ticks放置的地方,上述例子中,如果希望显示1到12所有的整数,就可以将locs参数设置为range(1,13,1),第二个参数也为数组参数(array_like, optional),可以不添加该参数,表示在locs数组表示的位置添加的标签,labels不赋值,在这些位置添加的数值即为locs数组中的数。

如下图

import numpy as np
import matplotlib.pyplot as plt
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x)
plt.show()

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

xticks()函数中,locs参数为数组x,即1到12所有的整数, 即画出的图像会在这12个位置画出ticks,即上图中的刻度线。

当赋予labels的值为空时,则在locs决定的位置上虽然会画出ticks,但不会显示任何值。

import numpy as np
import matplotlib.pyplot as plt
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x,())
plt.show()

其效果为:

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

该例子中,会明显看到locs和labels的关系,locs表示位置,labels决定这些位置上的标签,labels的默认值为和locs相同。

所以,对于labels参数,我们可以赋予其任意其它的值,如人名,月份等等。

import numpy as np
import matplotlib.pyplot as plt
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x, ('Tom','Dick','Harry','Sally','Sue','Lily','Ava','Isla','Rose','Jack','Leo','Charlie'))
plt.show()

在每个标签会依次显示labels中的人名:

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

还可以显示月份:

import numpy as np
import matplotlib.pyplot as plt
import calendar
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60)
plt.show()

显示效果为:

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

这里添加了 calendar 模块,用于显示月份的名称。calendar.month_name[1:13]即1月份到12月份每个月份的名称的数组。后面的参数color='blue'表示将标签颜色置为蓝色,rotation表示标签逆时针旋转60度。

通过上个示例,可看出第3个参数关键字参数**kwargs用于控制labels,具体可通过Text属性中的定义,添加到该参数中,关于其定义可参考在 Text 查询。

另外,通过第1个参数locs可以看出,xticks()函数还可以用来设置使x轴上ticks隐藏,即将空数组赋予它,则没有tick会显示在x轴上,此处参考:x轴数值隐藏。

import numpy as np
import matplotlib.pyplot as plt
import calendar
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks([])
plt.show()

可看出x轴上没有tick显示:

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

同理,对于yticks()函数定义和xticks()函数定义完全相同。对于第一个例子,如果希望在y轴上的刻度线也显示1到12所有的整数,则将lens(1,13,1)赋予yticks()的locs参数即可:

import numpy as np
import matplotlib.pyplot as plt
import calendar
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x)
plt.yticks(y)
plt.show()

其效果为:

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

综上,可以设计一个x轴为月份,y为星期的图像:

import numpy as np
import matplotlib.pyplot as plt
import calendar
from datetime import *
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60)
today = datetime(2018, 9, 10)
a=[]
for i in range(12):
 a.append(calendar.day_name[today.weekday()+(i%7)])
plt.yticks(y,a,color='red')
plt.show()

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

对应一月份选择星期一,二月份选择星期二,往后依次类推,直至将12个月安排完。

以上这篇python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python XML RPC服务器端和客户端实例
Nov 22 Python
python获取标准北京时间的方法
Mar 24 Python
浅析Python中的序列化存储的方法
Apr 28 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
python爬取指定微信公众号文章
Dec 20 Python
Django保护敏感信息的方法示例
May 09 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
基于pandas中expand的作用详解
Dec 17 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
vue常用指令代码实例总结
Mar 16 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 #Python
Python验证码截取识别代码实例
May 16 #Python
基于plt.title无法显示中文的快速解决
May 16 #Python
基于python生成英文版词云图代码实例
May 16 #Python
解决Python数据可视化中文部分显示方块问题
May 16 #Python
Python使用Excel将数据写入多个sheet
May 16 #Python
python小程序之4名牌手洗牌发牌问题解析
May 15 #Python
You might like
php图片上传存储源码并且可以预览
2011/08/26 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
js压缩利器
2007/02/20 Javascript
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python实现线程池代码分享
2015/06/21 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Python中的CSV文件使用"with"语句的方式详解
2018/10/16 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
打架检讨书800字
2014/01/10 职场文书
大学课外活动总结
2014/07/09 职场文书
作风建设年活动总结
2014/08/27 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
业务员岗位职责
2015/02/03 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers