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检测远程udp端口是否打开的方法
Mar 14 Python
Python 内置函数complex详解
Oct 23 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
Python socket实现的简单通信功能示例
Aug 21 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
python能做什么 python的含义
Oct 12 Python
Python实现把类当做字典来访问
Dec 16 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 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 fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php实现的短网址算法分享
2014/06/20 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
详解A标签中href=""的几种用法
2017/08/20 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
经济担保书范文
2014/04/02 职场文书
低碳环保倡议书
2014/04/14 职场文书
新课培训心得体会
2014/09/03 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers