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元祖,列表,字典,集合的比较
Jan 06 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
python机器学习之随机森林(七)
Mar 26 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
详解Python字典的操作
Mar 04 Python
python 字典套字典或列表的示例
Dec 16 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python绘制动态水球图过程详解
Jun 03 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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中文汉字验证码
2007/04/08 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
js实现日历的简单算法
2017/01/24 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python装饰器原理与用法分析
2018/04/30 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
python使用selenium实现批量文件下载
2019/03/11 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
市场部专员岗位职责
2013/11/30 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python