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检查URL是否正常访问的小技巧
Feb 25 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
详解python算法之冒泡排序
Mar 05 Python
python算法题 链表反转详解
Jul 02 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
python实现批量文件重命名
Oct 31 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 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 include加载文件两种方式效率比较
2010/08/08 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
sqlalchemy对象转dict的示例
2014/04/22 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
pandas值替换方法
2018/07/10 Python
python构建基础的爬虫教学
2018/12/23 Python
Python字典实现伪切片功能
2020/10/28 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
超市业务员岗位职责
2013/12/05 职场文书
装配出错检讨书
2014/09/23 职场文书
硕士学位申请报告
2015/05/15 职场文书