用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的整数,不进行坐标设置时,执行效果为:
此时的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()
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()
其效果为:
该例子中,会明显看到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中的人名:
还可以显示月份:
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()
显示效果为:
这里添加了 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显示:
同理,对于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()
其效果为:
综上,可以设计一个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()
对应一月份选择星期一,二月份选择星期二,往后依次类推,直至将12个月安排完。
以上这篇python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]