• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

python 搞代码 4年前 (2022-01-08) 37次浏览 已收录 0个评论

这篇文章主要介绍了python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

用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 impo<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>rt 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)方式的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址