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实现简单遗传算法(SGA)
Jan 29 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
对python周期性定时器的示例详解
Feb 19 Python
python实现图片转字符小工具
Apr 30 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
opencv设置采集视频分辨率方式
Dec 10 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
python异常处理之try finally不报错的原因
May 18 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获取网站域名和地址的代码
2008/08/17 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
javascript globalStorage类代码
2009/06/04 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
python如何在循环引用中管理内存
2018/03/20 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
python在不同条件下的输入与输出
2020/02/13 Python
Pycharm中如何关掉python console
2020/10/27 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
高三政治教学反思
2014/02/06 职场文书
卫生系统先进事迹
2014/05/13 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
供用电专业求职信
2014/07/07 职场文书
新郎接新娘保证书
2015/05/08 职场文书
硕士论文致谢范文
2015/05/14 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers
Win2008系统搭建DHCP服务器
2022/06/25 Servers