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代码检查工具pylint 让你的python更规范
Sep 05 Python
Python修改Excel数据的实例代码
Nov 01 Python
python使用正则表达式分析网页中的图片并进行替换的方法
Mar 26 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
python的turtle库使用详解
May 10 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
python实现多进程通信实例分析
Sep 01 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php查看session内容的函数
2008/08/27 PHP
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
php不写闭合标签的好处
2014/03/04 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
python的exec、eval使用分析
2017/12/11 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
Python如何定义有默认参数的函数
2020/08/10 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
市政工程技术专业自荐书
2014/07/06 职场文书
公司合作意向书范文
2014/07/30 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL