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对数据库操作
Mar 28 Python
python如何读写csv数据
Mar 21 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
python实现多层感知器
Jan 18 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
python实现代码统计程序
Sep 19 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
Django分组聚合查询实例分享
Apr 29 Python
Python异常处理机制结构实例解析
Jul 23 Python
python 实现有道翻译功能
Feb 26 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/14 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
业务代表的岗位职责
2013/11/16 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书