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字符串str和字节数组相互转化方法
Mar 18 Python
Python 自动化表单提交实例代码
Jun 08 Python
python实现简单遗传算法
Mar 19 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
详解django中url路由配置及渲染方式
Feb 25 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
python生成word合同的实例方法
Jan 12 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
python实现Nao机器人的单目测距
Sep 04 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
2009/06/29 PHP
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
php实现图片缩略图的方法
2016/03/29 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
用Python输出一个杨辉三角的例子
2014/06/13 Python
python实现备份目录的方法
2015/08/03 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
高三上学期学习自我评价
2014/04/23 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android