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 fabric使用笔记
May 09 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
python程序 创建多线程过程详解
Sep 23 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python远程开发环境部署与调试过程图解
Dec 09 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
Python super()方法原理详解
Mar 31 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 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中的实现trim函数代码
2007/03/19 PHP
PHP5 面向对象程序设计
2008/02/13 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
js select常用操作控制代码
2010/03/16 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
JavaScript类的写法
2016/09/17 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
实例讲解python中的协程
2018/10/08 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
python如何将图片转换素描画
2020/09/08 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
《长征》教学反思
2014/04/27 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技