Matplotlib.pyplot中的冷门方法

本文主要针对Python中的绘图库pyplot的一些冷门方法进行整理,毕竟再冷门也会有几率用到,而且还不好找,遇到这种情况就很烦(like me)!所以接下来我会描述一些它的方法,尽量做到让小白看了就能用!不定期更新!!!

1、pyplot.xticks()与yticks()

这两个方法可以用来设置x与y轴的刻度,比如某些情况下需要x或y轴不显示数值,而是字符,所以需要将数值替换成字符形式,具体用法看如下例子:

import matplotlib.pyplot as plt
import matplotlib as mpl
# 使图表中可以显示中文
mpl.rcParams["font.family"] = "sans-serif"
mpl.rcParams["font.sans-serif"] = u'SimHei'

if __name__ == "__main__":
    # 指定x,y轴的刻度
    plt.xticks(range(5, 30, 5), (u'周一', u'周二', u'周三', u'周四', u'周五'))
    plt.yticks(range(1, 6, 1), ('a', 'b', 'c', 'd', 'e'))
    # 画图
    plt.plot([5, 10, 15, 20, 25], [1, 2, 3, 4, 5])
    plt.show()

运行效果如下所示,以x轴为例,range(5, 30, 5)是设置x轴的刻度,从5开始,每隔5个单位为一个刻度,范围小于30,也就是说下图中x轴的刻度实际是[5, 10, 15, 20, 25],后面则是对应刻度的字符,主要数量要和刻度数量一致!也就是说,图标中的坐标轴实际还是数值,只不过显示时换成字符而已噜!
在这里插入图片描述

2、ax.set_xticks()与set_yticks()

素的,你没看错,还有个这个方法,主要是用于设置画布fig = plt.figure()以及设置子图ax = fig.add_subplot()时用来设置轴刻度,还有不是用pyplot绘制图表,而是用Matplotlib中的Figure()创建的图表。真的很无语,画个图表搞这么多方法,而且用的方法很多也不同,就不能好好统一一下吗?具体使用该方法的代码如下:

fig = plt.Figure()
ax = fig.add_subplot(111)

ax.set_xticks(range(5, 30, 5))
ax.set_xticklabels((u'周一', u'周二', u'周三', u'周四', u'周五'))
ax.set_yticks(range(1, 6, 1))
ax.set_yticklabels(('a', 'b', 'c', 'd', 'e'))

效果和1中一样,不过这里面设置刻度的字符显示则需要单独用到另一个方法set_xticklabels(),按照如上格式输入就行噜!

3、plt.barh()

这个方法与bar()类似,都是画条形图的,只不过barh()画的是水平条形图,也就是说这个可以用来画甘特图,比一些Python专门画甘特图的方法要简便的多,也容易理解!废话不多说,直接上代码:

if __name__ == "__main__":
    # 指定x,y轴的刻度
    plt.xticks(range(0, 25, 5), (u'周一', u'周二', u'周三', u'周四', u'周五'))
    plt.yticks(range(1, 6, 1), ('a', 'b', 'c', 'd', 'e'))
    # 画甘特图
    plt.barh((1, 2, 3, 4, 5), (5, 5, 5, 5, 5), 0.5, (0, 5, 10, 15, 20))
    plt.show()

和上述代码一样,只是改了画图那一行而已。如下图所示,(1, 2, 3, 4, 5) 是对应的纵坐标的刻度,即水平条形图有5个,纵坐标分别是1,2,3,4,5。 *(5, 5, 5, 5, 5)*是每个条形图的宽度,可以自己设定,我设置每个为5刚好为横坐标的两个刻度直接的长度!0.5是条形图的高度,可自定义! *(0, 5, 10, 15, 20)*是每个条形图的起始横坐标位置,即左侧端点位置。
在这里插入图片描述

发布了17 篇原创文章 · 获赞 3 · 访问量 1801

猜你喜欢

转载自blog.csdn.net/weixin_43350361/article/details/104996631